无乱是XML还是Json,创建一个新的配置文件,描述对象依赖关系.
@IocBean AnnotationIocLoader 根据这个注解来判断哪些类应该被自己加载
@Inject AnnotationIocLoader 根据这个注解来了解类中的字段,具体的注入方式
@InjectName 已废弃,优先级低于@IocBean.用来与 Mvc 容器的扩展点,声明了这个注解的模块,会被 Ioc 容器管理
@IocBean // 首先,它自己必须加@IocBean, 可以使用@IocBean/@Inject的全部功能.
public class MyBeanFactory {
//@Inject
//public PropertiesProxy conf; // 像普通对象那么注入任何你需要的东西,这个conf也可是其他IocBean类,但不能是这个类了,否则死循环了
@IocBean
public PropertiesProxy getConf() {
if ("product".equals(System.getProperty("nutz.runmode"))) {
return new PropertiesProxy("/etc/nutz/custom");
} else {
return new PropertiesProxy("custom/");
}
}
// 生成一个名为dataSource的bean. 命名规则是: IocBean(name=XXX) > 方法名去掉get/build后首字母小写.
@IocBean
public SimpleDataSource getDataSource(PropertiesProxy conf) {
SimpleDataSource ds = new SimpleDataSource();
ds.setJdbcUrl(conf.get("db.url", "jdbc:h2:mem:nutztest"));
return ds;
}
@IocBean
public Dao buildDao(DataSource dataSource) { // 带参数, 默认是按类型注入
return new NutDao(dataSource);
}
@IocBean(name="dao2") // 自定义bean的名字,这样方法名就随便起了
public Dao xxxgetDao2(DataSource dataSource) {
return new NutDao(dataSource);
}
@IocBean(name="dao3")
public Dao xxyyy(@Inject("refer:dataSource")DataSource ds) { // 参数加@Inject,可以像属性加上@Inject一样注入值
return new NutDao(ds);
}
@IocBean(name="dao3", create="init", depose="depose") // 事件也是支持的
public UserService makeUserService(Dao dao) {
return new UserServiceImpl(dao);
}
}
...
Dao接口的的基本操作
见官方文档
Dao – 针对 JDBC 的薄封装,事务模板,无缓存
Ioc – JSON 风格的配置文件,声明时切片支持
Mvc – 注解风格的配置,内置多文件上传功能
Json – 解析和渲染
Castors – Java 对象类型转换
Lang – 更简洁的 Java 函数以及更丰富的反射支持
Aop – 轻便快速的切面编程支持
Resource – 资源扫描
————————————————
版权声明:本文为CSDN博主「丿拾荒人丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31329751/article/details/78639867