在这种情况下我可以使用依赖注入吗? 如何在applicationContext.xml中配置bean文章?
public class Test{
public void methodX(){
.....
while{
Article a=new Article();
...
}//while
}//methodX
}//Test
编辑:
这是我用过的解决方案:
package factory;
import bean.ArticoliOrdine;
public abstract class ArticlesFactory {
public abstract Article createArticle();
}
@Transational
public class CartDAOImpl implements CartDAO {
@Autowired
private Cart cart;
@PersistenceContext
private EntityManager em;
@Autowired
ArticlesFactory articlesFactory;
public void buy(){
....
while{
Article article=articlesFactory.createArticle();
.....
em.persist(article);
}//while
}//buy
}//CartDAOImpl
在applicationContext
中 <bean id="articolesFactory" class="factory.ArticlesFactory">
<lookup-method name="createArticles" bean="articles"/>
</bean>
<bean class="bean.Articles" id="articles" scope="prototype"/>
答案 0 :(得分:0)
至少有两种方法可以实现这一目标:
Article
@Configurable
:
@Configurable是一个弹簧功能,允许您配置(因此名称)未在容器控制下创建的实例 - 作为名为Article
的{{1}}实例。要创建课程a
,您只需注释它即可。之后,您可以将依赖项注入该类,就像它是由容器创建的一样。
例如:
@Configurable
缺点:这使用方面来实现其魔力,因此您必须使用编译时编织或加载时间编织(首选)。如果您想尝试一下:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#aop-aj-ltw
创建工厂并将其注入课程@Configurable
public class Article {
// This gets injected every time you instantiate a new Article by 'new Article()'
@Autowired private SomeOtherClass dependency;
}
:
Test
以及稍后的课程@Component
public class ArticleFactory {
// Any stuff you want to configure article with
@Autowired private SomeOtherClass dependency;
public Article get() {
Article a = new Article();
a.setStuff(dependency);
return a;
}
}
:
Test