目录
1.什么是Bean管理
Bean管理指的是两个操作:
(1)Spring创建对象
(2)Spring注入属性
(1)Spring创建对象,如下例
public class User {
public void add(){
System.out.println("add......");
}
}
(2)Spring注入属性
private String userName;
像上面代码给userName设置值的操作就是注入属性
2.Bean管理操作两种方式
(1)基于xml配置文件方式实现
(2)基于注解方式实现
(1)IOC操作bean管理(基于xml方式)
基于XML方式创建对象
<bean id="user" class="com.XXX.XXX.User"></bean>
1.在Spring配置文件中,使用bean标签,标签里添加对应属性,就可以实现对象创建
2.在bean标签里边有很多属性,常用属性有
id属性:唯一标识。
class属性:创建对象所在类的全路径。
name属性:和id属性功能类似,区别是name属性可以添加特殊符号,如"/"。
3.创建对象的时候,默认执行无参构造完成对象的创建。
基于Xml方式注入属性
(1)DI:依赖注入,就是注入属性
IOC和DI区别:DI是IOC的一种具体实现。
第一种注入方式:使用set方法进行注入
1.创建类,定义属性和对应的set方法
/**
* 演示使用set方法进行注入属性
*/
public class Book {
//创建属性
private String name;
private String author;
/**
* 创建属性对应的set方法
* @param name
*/
public void setName(String name) {
this.name = name;
}
public void setAuthor(String author) {
this.author = author;
}
public void test(){
System.out.println(name+":"+author);
}
}
2.在spring配置文件配置对象创建,配置属性注入
<?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">
<!--set方法注入属性-->
<bean id="book" class="com.atguigu.spring5.Book">
<!--使用property完成属性的注入
name:类里面属性名称
value:向属性注入的值
-->
<property name="name" value="java入门到放弃"></property>
<property name="author" value="LPC"></property>
</bean>
</beans>
下面是测试方法
@Test
public void testBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
Book book = context.getBean("book",Book.class);
System.out.println(book);
book.test();
}
下面是输出结果:
com.atguigu.spring5.Book@52f759d7
java入门到放弃:LPC
第二种注入方式:通过有参构造注入
1.创建类,定义属性和有参构造
/**
* 演示使用有参构造方式进行注入属性
*/
public class Book {
//创建属性
private String name;
private String author;
/**
* 有参构造
* @param name
* @param author
*/
public Book(String name, String author) {
this.name = name;
this.author = author;
}
public void test(){
System.out.println(name+":"+author);
}
}
2.在spring配置文件配置对象创建,配置属性注入
<?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="book" class="com.atguigu.spring5.Book">
<constructor-arg name="name" value="php入门到放弃"></constructor-arg>
<constructor-arg name="author" value="lpc"></constructor-arg>
</bean>
</beans>
下面是测试方法
package com.atguigu.spring5.testdemo;
import com.atguigu.spring5.Book;
import com.atguigu.spring5.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring5 {
@Test
public void testBook(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
Book book = context.getBean("book",Book.class);
System.out.println(book);
book.test();
}
}
输出结果是:
com.atguigu.spring5.Book@4e718207
php入门到放弃:lpc