Spring:依赖注入信息

时间:2014-11-30 11:48:25

标签: spring

在这种情况下我可以使用依赖注入吗? 如何在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"/>

1 个答案:

答案 0 :(得分:0)

至少有两种方法可以实现这一目标:

  1. 制作Article @Configurable: @Configurable是一个弹簧功能,允许您配置(因此名称)未在容器控制下创建的实例 - 作为名为Article的{​​{1}}实例。
  2. 要创建课程a,您只需注释它即可。之后,您可以将依赖项注入该类,就像它是由容器创建的一样。 例如:

    @Configurable

    缺点:这使用方面来实现其魔力,因此您必须使用编译时编织或加载时间编织(首选)。如果您想尝试一下:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#aop-aj-ltw

    1. 创建工厂并将其注入课程@Configurable public class Article { // This gets injected every time you instantiate a new Article by 'new Article()' @Autowired private SomeOtherClass dependency; }

      Test
    2. 以及稍后的课程@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