spring中的span属性
spring 笔记
xml配置*
bean:
在网上看到有的文章说name可以重复,但是我在Srping 4.0.4.RELEASE测试中,bean标签的name属性也是不能重复。不建议重复
id和name属性的比较
id与name,作用基本相同,但不推荐使用特殊字符。
空参构造方式。
ApplicationContex ac =new ClassPathXmlApplicationContext(applicationContext.xml);
ApplicationContex 配置的所有bean都会在容器创建的时候被创建出来
如果配置的bean较多,那么在创建容器的时候,会产生内存过大的问题。这种情况在机器硬件性能较为落后的时候体现较为明显。
解决方法:延迟加载
lazy-initi="true"就是创建容器时候不加载创建的bean对象,在获取的时候才创建
**scope属性,**一般情况下只采用singleton,特殊情况下才会改为prototype
singleton:创建一个对象
singleton:表示整个IOC容器共享一个Bean,也就是说每次说每次通过getBean获取的bean都是同一个。
prototype:创建新的对象
prototype:每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)时都会创建一个新的bean实例。
request:每次HTTP请求将会生成各自的bean实例
如果scope属性为request,那么这个对象被创建出来,他的声明周期会与request一致。
session:每次会话请求对应一个bean实例
session:同理,生命周期与session一致
singleton和prototype经常使用,request和session基本不使用。
init-method和destory-method属性
init-method属性是bean的初始方法,在创建好bean后调用该方法。
destory-method属性是bean的销毁方法,在销毁bean之前调用该方法,一般在该方法中释放资源
b)属性注入
set方法注入:
构造函数注入****
3:复杂类型注入:array,list,set,map,properties