【Spring】IOC基于xml方式操作Bean管理
1.什么是Bean管理
(1)Spring创建对象
(2)Spring注入属性:使用set方法(构造器)给对象设置值-->交给Spring
2.基于xml方式创建对象
(1)在配置文件中使用bean标签
<bean id="user" class="com.pxk.User"></bean>
(2)bean标签中的常用属性
id:唯一表示(别名)
class:类全路径
name:类似于id,值可以为特殊字符(较少使用)
(3)创建对象时,默认也是执行无参构造方法完成对象创建。
3.基于xml方式注入属性
(1)DI:依赖注入,就是注入属性
DI是IOC中的一种具体实现,在创建对象的基础之上完成。
(2)使用set方法注入属性
类中给属性提供set方法
public class Book {
private String bname;
private String bauthor;
public void setBname(String bname) {
this.bname = bname;
}
public void setBauthor(String bauthor) {
this.bauthor = bauthor;
}
}
bean.xml配置文件中使用property
<bean id="book" class="com.pxk.Book">
<property name="bname" value="西游记"></property>
<property name="bauthor" value="吴承恩"></property>
</bean>
(3)使用有参构造器注入属性
类中提供有参构造器
public class Order {
private String oname;
private String address;
public Order(String oname, String address) {
this.oname = oname;
this.address = address;
}
}
bean.xml配置文件中使用constructor-arg
<bean id="order" class="com.pxk.Order">
<constructor-arg name="oname" value="电脑"></constructor-arg>
<constructor-arg name="address" value="China"></constructor-arg>
</bean>
也可以使用索引
<constructor-arg index="0" value = "电脑"><constructor-arg>
测试
public void test(){
//1.加载配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//2.获取对象
Order order= context.getBean("order",Order.class);
System.out.println(order.getOname()); //电脑,加了get方法
}
(4)p名称空间注入
可以用来替换set方式注入,在配置文件中添加p名称空间
xmlns:p="http://www.springframework.org/schema/p"
<bean id="book2" class="com.pxk.Book" p:bname="红楼梦" p:bauthor="曹雪芹"></bean>