1)id 只能唯一,而 name 可以不唯一;
2)当只有name没有id时,name可等同于id;
3)name的命名规则没有限制,而id得按照标准来:由字母数字和下划线组成,且第一个字符必须是字母。
<!-- 验证多例模式 --> <bean id="product" class="com.bzc..b_scope.Product" scope="prototype"></bean>
单例模式和多例模式的区别:在一个方法里创建一个 bean 的对象,如果是单例模式,前后通过 getBean 获得的对象是同一个对象,前后操作互相影响。但如果是多例模式,通过 getBean 获得的对象不是同一个对象,前后操作互不影响。
构造方法里的参数必须都要注入,如果这里只注入name而不注入age就会报错。原因,找不到对应的构造器。
<!-- 复杂对象的注入 ref的使用 --> <bean id="teacher" class="com.bzc..c_injection.Teacher"> <property name="name" value="李四"></property> <property name="age" value="34"></property> <property name="classes" ref="classes"></property> </bean>条件:Teacher类中有个属性classes,数据类型是Classes,在这里由于是复杂类型,不能直接用value赋,而是通过 ref 关联到前面已经注入过classes的那个bean
6.p名称空间
xmlns:p="http://.springframework.org/schema/p" //如果要使用名称空间,要检查约束里可有这条,没有的话自行添加作用:第5点提到了属性注入,如果属性很多,要写很多个<property></property>,会很繁琐,为了简化这一操作,就可以使用p名称空间。
<!-- SpEl表达式的使用 -->
<bean id="userInfo" class="com.bzc..c_injection.UserInfo"></bean> <!-- 提供数据的那个bean -->
<bean id="teacher" class="com.bzc..c_injection.Teacher">
<property name="name" value="#{userInfo.name}"></property><!-- 使用数据bean的里的属性,这里的name不是属性,是getName -->
<property name="age" value="#{userInfo.calcu()}"></property><!-- 使用数据bean里的方法 -->
<property name="classes" value="#{classes}"></property><!-- 使用其他bean -->
</bean>8.集合bean的写法
当一个工程越来越大时,所有的bean都写在一个application.xml时会显得很拥挤,不利于后期的维护和管理。
可以采取将关系相近的bean配置到一个单独的xml中,如bean1.xml,再将bean1.xml引入到applicationContext.xml中即可。
2.销毁方法只能对单例Bean起作用;
3.销毁方法必须得关闭applicationContext对象,如applicationContext.close();而且这个applicationContext对象是用ApplicationContext的子类ClassPathXmlApplicationContext类来创建的。4.3.2applicationcontext.xml
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-43089-2.html
事情没调查清楚你就发布这样误导性的信息