1.bean实例化的方式
(1)bean的实例化就是通过配置文件创建对象
(2)bean实例化三种创建方式
第一种:通过类中的无参构造器进行创建(重点,一般用第一种)
第二种:使用静态工厂创建
第三种:使用实例工厂创建
2.bean标签常用的属性
(1)id属性:唯一标识,根据id得到配置对象,不能包含特殊符号
(2)class属性:创建对象所在类的全路径
(3)name属性:和id属性一样,id也可以换为name,name可以包含特殊符号
(4)scope属性:bean的作用范围
scope属性包含:1.singleton 2.prototype 3.request 4.session 5.globalSession.重点前两个
singleton单例模式(默认值) 2.prototype 多实例模式,设置scope="prototype "
3.属性注入
创建对象的时候,向类中属性设置值
属性注入的方法
1.使用set方法注入
2.使用构造器注入
3.使用接口注入
在spring框架里面只支持前两种注入
spring有参构造方法注入
package cn.itcast.property;
/*spring有参构造注入*/
public class propertyDemo1 {
private String Username;
public propertyDemo1(String username) {
this.Username = username;
}
public void test(){
System.out.println("有参构造注入"+Username);
}
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用有参构造属性注入 -->
<bean id="demo" class="cn.itcast.property.propertyDemo1">
<!--使用有参构造注入 参数name属性名字,value 属性值-->
<constructor-arg name="username" value="小明"></constructor-arg>
</bean>
</beans>
测试方法
package cn.itcast.property;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class testIoc {
@Test
public void testUser(){
//1.加载spring配置文件
ApplicationContext context=new ClassPathXmlApplicationContext("beanConfig.xml");
//得到配置创建的对象
propertyDemo1 use= (propertyDemo1) context.getBean("demo");
use.test();
}
}
spring的set造方法注入
package cn.itcast.property;
public class book {
private String bookName;
public void setBookName(String bookName) {
this.bookName = bookName;
}
public void testbook(){
System.out.println("set注入"+bookName);
}
}
配置文件
<!-- 使用set方法注入 -->
<bean id="book" class="cn.itcast.property.book">
<!-- 注入属性
参数name属性名字,value 属性值
-->
<property name="bookName" value="java"></property>
</bean>
测试
package cn.itcast.property;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class testIoc {
@Test
public void testUser(){
//1.加载spring配置文件
ApplicationContext context=new ClassPathXmlApplicationContext("beanConfig.xml");
//得到配置创建的对象
book bk=(book) context.getBean("book");
bk.testbook();
}
}