bean标签常用属性
1、id属性:bean唯一标识,可以任意命名。
–不能包含特殊符号
–根据id值得到配置对象
2、class属性:创建对象所在类的全路径。
3、name属性:(现在已经不用,历史遗留)功能与id值一样,但是name属性值可以有特殊符号,是为和Struts1整合时使用(action中有特殊符号)。
4、scope属性:设置类的特点。
属性值:1):singleton:默认值,单例的(只创建一个对象)。
<bean id="user" class="cn.wdh.ioc.User" scope="singleton"></bean>
public class TestIOC {
@Test
public void IOC() {
ApplicationContext context=
new ClassPathXmlApplicationContext("applicationConfig.xml");
User user1=(User)context.getBean("user");
User user2=(User)context.getBean("user");
System.out.println(user1);
System.out.println(user2);
}
}
运行结果:
2):prototype:多例的。
<bean id="user" class="cn.wdh.ioc.User" scope="prototype"></bean>
public class TestIOC {
@Test
public void IOC() {
ApplicationContext context=
new ClassPathXmlApplicationContext("applicationConfig.xml");
User user1=(User)context.getBean("user");
User user2=(User)context.getBean("user");
System.out.println(user1);
System.out.println(user2);
}
}
运行结果:
3):request:WEB项目中,Spring创建一个bean对象,将对象存入request域中。
4):session:WEB项目中,Spring创建一个bean对象,将对象存入session域中。
5):globalSession(单点登录):在WEB项目中,应用在Porlet环境中,如果没有Porlet环境,那么globalSession相当于session。全局的session:登录一次,在进行起相关的产品中不需要再一次登录,例如,百度旗下有很多产品,只需要登录一次百度账号,在访问百度贴吧、百度文库等等就不需要再次登录。
属性注入
属性注入:创建对象的时候,设置类的成员变量的值
1、属性注入的方式(两种方式)
1):使用set方法。
<bean id="demo" class="cn.wdh.property.PropertyDome1">
<property name="成员变量的名称" value="成员变量的值"></property>
</bean>
2):有参构造函数。
<bean id="demo" class="cn.wdh.property.PropertyDome1">
<!--constructor-arg:该标签表示使用有参的构造函数-->
<constructor-arg name="成员变量的名称" value="成员变量的值"></constructor-arg>
</bean>
注入对象类型属性
1、创建UserService和UserDao。
2、具体实现过程
1):在UserService中创建UserDao类型的成员变量。
2):创建成员变量的set方法。
3、配置文件中完成注入关系。
<!--创建Userdao对象-->
<bean id="userdao" class="UserDao的全路径"></bean>
<!--创建UserService对象并把UserDao通过Set方法注入-->
<bean id="userService" class="UserService全路径">
<!--不用value属性,ref先、值为要注入对象的bean的值-->
<property name="成员变量名称" ref="userdao"></property>
</bean>