【Bean】标签常用属性
- Id
说明:起名称,id属性值名称任意,不能包含特殊符号,根据id得到配置对象。
- Class
说明:创建对象所在类的全路径。
- Name
说明:功能和id是一样的,id属性值不能有特殊符号,但是name可以包含特殊符号。目前已经不再使用,使用也不会有什么问题(这是个遗留问题,主要是整合struts1来设置的)。
说明:Bean的作用范围
singleton |
默认值、单例的(只创建一个对象) |
prototype |
多例的 |
request |
WEB项目中,Spring创建一个Bean对象,将对象存入到request域中 |
session |
WEB项目中,Spring创建一个Bean对象,将对象存入到session域中 |
globaSession |
WEB项目中,应用在Porlet(单点登录)环境中,如果没有Porlet环境,那么globalSession相当于session。 |
Singleton代码演示:
1 //核心配置文件内容不变,因为默认就是singleton,再次基础上代码如下 2 //(如果要写就是: scope="singleton"): 3 @Test 4 public void testUser(){ 5 //加载核心配置文件,创建对象 6 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 7 //得到我们配置的对象 8 //<bean id="user" class="com.tyzr.ioc.User"></bean> 9 User user1 = (User)context.getBean("user"); 10 User user2 = (User)context.getBean("user"); 11 System.out.println(user1); 12 System.out.println(user2); 13 }
输出结果如下:
com.tyzr.ioc.User@6f760238
com.tyzr.ioc.User@6f760238
Prototype(多例)代码案例:
注意:我们在整合Struts2的时候,由于action是多实例的,这里这个就是要和struts2的action配合使用的(更简单的说以后要用spring管理struts2 action的创建,就得是多实例的)。
1 <bean id="user" class="com.tyzr.ioc.User" scope="prototype"></bean> 2 @Test 3 public void testUser(){ 4 //加载核心配置文件,创建对象 5 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 6 //得到我们配置的对象 7 //<bean id="user" class="com.tyzr.ioc.User"></bean> 8 User user1 = (User)context.getBean("user"); 9 User user2 = (User)context.getBean("user"); 10 System.out.println(user1); 11 System.out.println(user2); 12 }
输出结果如下:
com.tyzr.ioc.User@25e25cc
com.tyzr.ioc.User@7303754a