目录
一、IOC操作 Bean 管理
1.Bean 管理
1.Bean 管理 指的是两个操作
(1) Spring 创建对象
(2) Spring 注入属性
2.Bean 管理操作之基于xml 配置文件方式实现
1)基于xml 方式创建对象
<!-- <配置User对象创建> -->
<bean id="user" class="com.xcq.spring5.User"></bean>
<!--
(1)在Spring配置文件中,使用Bean标签,标签里面添加对应的属性,就可以实现对象创建。
(2)在bean 标签中有很对属性,常用的有:
* id 属性:为一标识
* class 属性:类全路径,包全路径
(3) 创建对象时,默认执行无参构造函数完成对象创建
-->
2) 基于xml 方式注入属性
(1)DI:依赖注入,就是注入属性
(2) 基于xml方式注入属性有两种
第一种注入方式:使用set方法进行注入
(1)创建类,定义属性和对应的set方法
public class Book {
//创建属性
private String bname;
private String bauthor;
//创建属性对应的set方法
public void setBname(String bname) {
this.bname = bname;
}
public void setBauthor(String bauthor) {
this.bauthor = bauthor;
}
(2)在Spring的xml配置文件中先配置对象的创建,再配置属性的创建
<!--2. set 方法注入属性 -->
<!--配置Book对象创建>
<bean id ="book" class="com.xcq.spring5.Book">
<!-- 使用property 完成属性注入
name: 类里面的属性名称
value:像属性注入值 -->
<property name="bname" value="我爱java"></property>
<property name="bauthor" value="xcq"></property>
</bean>
(3) 测试
public class TestSpring5 {
@Test
public void testBook1(){
//1.加载Spring 配置对象
ApplicationContext context =
new ClassPathXmlApplicationContext("xcq.xml");
//2.获取配置创建的对象
Book book = context.getBean("book", Book.class); //“book" 是配置文件里面的Book对象
System.out.println(book);
book.testDome();
}
}
public void testDome(){
System.out.println(bname+"::"+bauthor);
第二种注入方式:使用使用有参数的构造函数进行注入属性
(1)创建类,定义属性,创建属性对应有参数构造方法。
public class Oreder {
// 属性
private String oname;
private String address;
// 有参数构造
public Oreder(String oname, String address) {
this.oname = oname;
this.address = address;
}
public void orderTest(){
System.out.println(oname+"::"+address);
}
}
2) 在Spring 配置文件(xml)中进行配置
<!-- 创建对象 -->
<bean id="orders" class="com.xcq.spring5.Oreder"></bean>
<!-- 注入属性 -->
<constuuct-arg name="oname" value="abc"></constuuct-arg>
<constuuct-arg name="address" value="china"></constuuct-arg>
3)测试
@Test
public void testOrder(){
//1.加载Spring 配置对象
ApplicationContext context =
new ClassPathXmlApplicationContext("xcq.xml");
//2.获取配置创建的对象
Oreder oreder = context.getBean("orders", Oreder.class);
System.out.println(oreder);
oreder.orderTest();
}