我想创建一个对象,只要它不存在于数据库中。 在普通的Java我会做类似弹簧DI和创建对象
MyObject getObject(String id) {
MyObject myObject = myDao.getById(id);
if(myObject == null) {
myObject = new MyObject("Some Parameter");
}
return myObject;
}
我现在想使用Spring这一点。 我的想法是使用预先注入的工厂。 东西在(但构造器注入)方向:
@Autowired
MyObjectFactory myObjectFactory;
MyObject getObject(String id) {
MyObject myObject = myDao.getById(id);
if(myObject == null) {
myObject = myObjectFactory.newInstance("Some Parameter");
}
return myObject;
}
但可以肯定我想问什么选项有和方法是优选的同泉DI线去。
* EDIT 1 * 修正自动装配Autowired注解
* EDIT 2 * Copyinf从我的意见一个
我必须具有比在此示出在getObject方法多比特逻辑。
我必须检查不同的唯一键才能找到匹配的对象,并且只有当我找不到具有不同方法的对象时,才会创建一个新对象。我只是保持小问题的代码。 这就是为什么我宁愿不使用创建如果找不到的方法。
另外,我尝试保持代码可测试性并从方法中抽象创建对象。
没有错的想法,但Spring的注解依赖注入的是'@ Autowired'而不是'@ Autoinject'。 – Jesper
不是一个Id意味着对象已经存在于数据库中? – farrellmr
@Jesper,谢谢,修正它。没有考虑解决方案,而编写关于SO的演示代码的问题将有所帮助;) – Xtroce