j-spring 框架总结 (7)

66 阅读1分钟

源码:j-spring 轻量级的IOC库.

目前基础的IOC功能和AOP功能都已经完成了,相较于java的spring优缺点还是很明显的。


  it('simple test', () => {

    @Component
    class Calculate {

      @Value({path:'n',type:Number})
      n:number;

      doCalculate(inputN:number){
        return this.n*inputN;
      }

    }

    @Component
    class Application {

      @Autowired({clazz:Calculate})
      calculate:Calculate;

      main(n:number){
        return this.calculate.doCalculate(n);
      }
    }

    expect(spring.loadConfig({n:2}).getBean(Application).main(2)).toBe(4)
  });

缺点

  • 1.无法做类型推断注入
  • 2.方法参数无类型,名称必须手动注入,影响参数注解的美观性和增加不稳定性。
  • 3.孤立的组件会在编译阶段treeshake掉,需要手动绑定。
  • 4.同一注解只能标注在一个位置

优点

  • 1.轻量级,启动极快(秒级),编译后直接运行获得组件信息,无需扫描。(java的项目越做越大,我真的写不动了,重启就快接近1分钟)
  • 2.编译阶段就会通过treeshake清除掉无用的组件,所以强制开发人员要编排注入组件的顺序。我认为是个优点,提高项目的可维护性。