可以使用以下
@Configurable说明将依赖项注入到不受Spring容器管理的对象中:http : //static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/aop.html#aop-atconfigurable。
到目前为止,你已经意识到,除非使用
@Configurable适当的AspectJ编织配置,否则Spring不会将依赖项注入使用
new运算符创建的对象中。实际上,除非你已经从中检索了依赖项,否则它不会将依赖项注入到对象中
ApplicationContext,原因很简单,即它根本不知道它们的存在。即使你使用注释你的实体
@Component,该实体的实例化仍将
new由你或
Hibernate之类的框架执行。请记住,注释只是元数据:如果没有人解释该元数据,则它不会增加任何行为或对正在运行的程序产生任何影响。
话虽如此,我强烈建议不要将a S
ervletContext注入实体。实体是域模型的一部分,应与任何交付机制(例如,基于Servlet的Web交付层)分离。当命令行客户端或其他不涉及ServletContext的实体访问该实体时,你将如何使用它?你应该从该ServletContext中提取必要的数据,并将其通过传统的方法参数传递给你的实体。通过这种方法,你将获得更好的设计。



