构造方法注入
当类中有且只有一个无参的构造方法时,是不需要通过 @ConstructorBy
来指明构建 Bean
的构造方法。
首先,在要被注入的构造方法上标记 net.hasor.core.ConstructorBy
注解,以表示在创建 Bean
的时候使用这个构造方法。
然后,如果有参数要被注入,那么在需要注入的参数前面加上 net.hasor.core.Inject
注解。以表示某个参数的来源是通过依赖注入进来的。
例如
public class CustomBean {
private FunBean funBean = null;
@ConstructorBy
public CustomBean(@Inject() FunBean funBean) {
this.funBean = funBean;
}
public void callFoo() {
this.funBean.foo();
}
}
创建 Bean 也很简单,无需任何注册或者声明Bean的步骤。只需要从容器中按类型获取即可,Hasor 会自动在创建 Bean 过程中解析配置。
AppContext appContext = Hasor.create().build();
CustomBean myBean = appContext.getInstance(CustomBean.class);
提示
net.hasor.core.ConstructorBy
注解和 javax.inject.Inject
注解具有相同功效。
如果类上出现多个 ConstructorBy
注解,那么将会按照构造方法参数个数排序。最后取参数最少的那个作为最终的构造方法。