ssm*_*ssm 16 spring spring-mvc
如果我定义两个相同类的bean而不给出任何范围.然后将创建多少个类实例.例如
在applicationContext.xml中
<bean name="testBean" class="com.test.Example"/>
<bean name="myBean" class="com.test.Example"/>
Run Code Online (Sandbox Code Playgroud)
Art*_*lpe 11
Spring将创建两个类型的bean,com.test.Example
自动装配将用于类型或方法名称(或限定符),请参阅Spring IOC
看到这个简单的测试:
有了这堂课
public static class TestBean {
static int INT = 1;
public int test;
public TestBean() {
test = INT++;
}
}
Run Code Online (Sandbox Code Playgroud)
配置xml:
<bean name="testBean" class="com.test.TestBean"/>
<bean name="myBean" class="com.test.TestBean"/>
Run Code Online (Sandbox Code Playgroud)
带弹簧容器测试的JUnit4:
@Resource
TestBean testBean;
@Resource
TestBean myBean;
@Test
public void test() {
assertNotNull(testBean);
assertNotNull(myBean);
assertFalse(testBean == myBean);
assertFalse(testBean.test == myBean.test);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,此测试不会失败,会创建两个TestBean类型的bean.
在Spring Doc中查看此部分:
byName
按属性名称自动装配.Spring查找与需要自动装配的属性同名的bean.例如,如果bean定义按名称设置为autowire,并且它包含master属性(即,它具有setMaster(..)方法),则Spring会查找名为master的bean定义,并使用它来设置属性.byType
如果容器中只存在一个属性类型的bean,则允许自动装配属性.如果存在多个,则抛出致命异常,这表示您不能对该bean使用byType自动装配.如果没有匹配的bean,则没有任何反应; 该物业未设定.构造函数
类似于byType,但适用于构造函数参数.如果容器中没有构造函数参数类型的一个bean,则会引发致命错误.
归档时间: |
|
查看次数: |
38887 次 |
最近记录: |