一、什么是Bean管理(概念)
Bean指的是两个管理
1、Spring创建对象
2、Spring注入属性
二、Bean管理操作有两种方式
1、基于XML配置方式实现
2、基于注解方式实现
IOC操作Bean管理(基于XML方式)
1、基于XML方式创建对象
<!--配置Book对象创建-->
<bean id="book" class="com.lds.springdemo.Book"></bean>
(1)在Spring配置文件中,使用Bean标签,标签里面添加对应属性,就可以实现对象的创建
(2)在bean标签中有很多属性,介绍常用属性
- id属性:唯一标识
- class属性:类的全路径(包类路径)
- name属性:其实和id属性作用一样,区别在于可以加特殊符号
(3)创建对象的时候,默认也是去执行无参的构造方法完成对象的创建
2、基于XML方式注入属性
(1)、DI:依赖注入、就是注入属性
面试问题:IOC和DI有什么区别
DI是IOC中一种具体实现,他就表示依赖注入或者说是注入属性,但是在注入属性需要在创建对象的基础之上完成。
第一种注入方式:
(1)、setter方法注入属性(原始写法)
public class Book {
private String bName;
public void setBnName(String bName) {
this.bName = bName;
}
public static void main(String[] args) {
Book book = new Book();
book.setBnName("JAVA");
}
}
(2)、在Spring配置文件中配置对象的创建,配置属性注入(基于XML配置写法)
<bean id="book" class="com.lds.springdemo.Book">
<!--使用property完成属性的注入
name:类里面属性名称
value:向属性里面注入的值-->
<property name="bName" value="JAVA"></property>
<property name="bAuthor" value="LDS"></property>
</bean>
第二种注入方式:
(1)、有参构造注入(原始写法)
/**
* @Description: 使用set方法进行注入属性
* @Author: lds
* @Date: 2020/12/8
*/
public class Book {
private String bName;
private String bAuthor;
public Book(String bName, String bAuthor) {
this.bName = bName;
this.bAuthor = bAuthor;
}
public void setbName(String bName) {
this.bName = bName;
}
public void setbAuthor(String bAuthor) {
this.bAuthor = bAuthor;
}
}
(2)、在Spring配置文件中配置对象的创建,配置属性注入(基于XML配置)
<!--有参构造注入属性 通过属性是name注入-->
<bean id="book" class="com.lds.springdemo.Book">
<constructor-arg name="bName" value="JAVA"></constructor-arg>
<constructor-arg name="bAuthor" value="LDS"></constructor-arg>
</bean>
<!--有参构造注入属性 通过索引值注入 0代表:bName 1代表:bAuthor-->
<bean id="book" class="com.lds.springdemo.Book">
<constructor-arg index="0" value="JAVA"></constructor-arg>
<constructor-arg index="1" value="LDS"></constructor-arg>
</bean>
<!--基于p空间配置 xmlns:p="http://www.springframework.org/schema/p"-->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--set方法注入属性-->
<bean id="book" class="com.lds.springdemo.entity.Book" p:name="JAVA" p:page="100">
</bean>
</beans>