在Spring中,可以将在应用程序上下文中创建的bean自动装配到在根上下文中创建的bean。在过去的几个小时里,我一直试图这样做,但似乎没有用。有办法吗?
答案 0 :(得分:1)
根上下文(父)不能"看"来自孩子们的豆子。孩子们可以看到""来自父母的豆子。
为了支持这个陈述,可以设置为" parent"在创建另一个ApplicationContext
时ApplicationContext
:多种类型的上下文具有构造函数,其中一个参数是另一个上下文。这意味着新创建的上下文知道谁是其父级,但父级不知道谁是其子级。这是ApplicationContext
的设计决定。
答案 1 :(得分:0)
添加如下所示的课程:
package your.package;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class YourApplicationContext {
private static ApplicationContext instance;
public static ApplicationContext getInstance() {
try {
if(instance == null){
synchronized ( YourApplicationContext.class ){
if(instance == null){
instance = new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
}
return instance;
} catch (Exception e) {
System.out.println(e);
return null;
}
}
}
还要在下面的资源文件夹中添加applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<context:component-scan base-package="your.package" />
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
</beans>
我添加了xml文件,就像使用的是Spring 3.0版本一样。