@bean中的自动连线不在spring上下文中
我对春天不熟悉。在spring上下文中不存在的普通JavaBean中,是否有一种替代方法可以使用autowired。您可以通过使用spring和一些@bean中的自动连线不在spring上下文中,spring,spring-mvc,Spring,Spring Mvc,我对春天不熟悉。在spring上下文中不存在的普通JavaBean中,是否有一种替代方法可以使用autowired。您可以通过使用spring和一些AspectJmagic来实现这一点 如果你需要一个详细的解释,这里是 下面是如何实现这一目标的简要概述 首先,您需要在某处注入一些bean: @Component public class InjectedClass { // ... } 然后,您有一个非spring容器管理的类,您希望实例化该类。您希望自动关联与此类一起使用。你把它标记
AspectJ
magic来实现这一点
如果你需要一个详细的解释,这里是
下面是如何实现这一目标的简要概述
首先,您需要在某处注入一些bean:
@Component
public class InjectedClass {
// ...
}
然后,您有一个非spring容器管理的类,您希望实例化该类。您希望自动关联与此类一起使用。你把它标记为一个
现在,您需要告诉spring,您希望这个非容器管理的自动连接能够工作。因此,您在spring配置中添加了以下内容
<context:load-time-weaver />
<context:spring-configured />
现在,Tomcat需要找到classloader
。您可以通过将Spring的Spring tomcat weaver.jar
(可能名为org.springframework.instrument.tomcat-.jar
)放在tomcat安装的lib
目录中来确保aspectj magic开始工作。对于使用注释进行注释的类,将自动解析@Autowired
依赖项;即使实例是在spring容器外部创建的
这可能是使Spring以干净的方式工作的唯一方法。确保在类路径中有适当的依赖项
另一种方法是使用完整的功能,围绕所有构造函数提供自定义方面,并自己处理依赖项注入。那么您想将一个spring托管bean注入到非托管POJO中吗?您想让autowiring为您实例化的bean而不是spring容器工作吗,这就是你想要的吗?@Funtik,是的,你是对的
<context:load-time-weaver />
<context:spring-configured />
<Context path="/youWebAppName">
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"
useSystemClassLoaderAsParent="false"/>
</Context>