在spring没有实例化的类中注入spring bean

时间:2014-07-07 21:20:18

标签: java spring

我有一个名为FileReader的类,每次生成新文件时都会显式实例化。我希望有一个集中管理的单例ExecutorService,每次实例化它时都会插入到FileReader中。这个执行器服务是由Spring管理的单例。我想知道是否有可能在FileReader的每个新实例中注入它(使用自动装配或类似的东西),因为我显式创建它(使用类似FileReader fr = new FileReader())

1 个答案:

答案 0 :(得分:1)

您可以查看dependency injection of domain objects with Spring,方法是一样的。但是,您需要为项目启用加载时编织。

如果你不打算经常做这种事情,我建议:

  • 手动注射,如@JB Nizet上面评论的,或
  • 将FileReader定义为原型 bean,并将new FileReader()次出现更改为applicationContext.getBean("fileReader")或等效。然后你可以通过“普通”Spring将你想要的任何东西注入FileReader。我个人会在getBean()中封装FileReaderFactory调用,以避免在我的业务类中对Spring的硬依赖。