Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@bean中的自动连线不在spring上下文中_Spring_Spring Mvc - Fatal编程技术网

@bean中的自动连线不在spring上下文中

@bean中的自动连线不在spring上下文中,spring,spring-mvc,Spring,Spring Mvc,我对春天不熟悉。在spring上下文中不存在的普通JavaBean中,是否有一种替代方法可以使用autowired。您可以通过使用spring和一些AspectJmagic来实现这一点 如果你需要一个详细的解释,这里是 下面是如何实现这一目标的简要概述 首先,您需要在某处注入一些bean: @Component public class InjectedClass { // ... } 然后,您有一个非spring容器管理的类,您希望实例化该类。您希望自动关联与此类一起使用。你把它标记

我对春天不熟悉。在spring上下文中不存在的普通JavaBean中,是否有一种替代方法可以使用autowired。

您可以通过使用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>