目录
1、IOC入门案例
1.1 思路整理
- spring是使用容器管理Bean对象的,主要管理项目中所使用到的类对象,比如(service和dao)
- 实用配置文件的方式将被管理的对象告知IOC容器
- 被管理的对象交由IOC容器,想要获取IOC容器还是从容器中获取对象,都需要用到Spring框架提供的接口以及其中的方法。
- 使用Spring需要再pom.xml中添加相应的依赖
1.2 入门案例代码实现
步骤1:创建Maven项目
步骤2:在pom.xml中添加依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--spring依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
步骤3:添加案例中的类
步骤4:添加Spring配置文件
resources下添加Spring配置文件applicationContext.xml,
步骤5:在配置文件中完成Bean的配置
<?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标签表示配置Bean
id属性表示给Bean起名字
class属性表示给Bean定义类型
-->
<bean id="bookDao" class="com.AT.dao.Impl.BookDaoImpl"></bean>
<bean id="bookService" class="com.AT.service.impl.BookServiceImpl"></bean>
</beans>
步骤6:获取IOC容器,并从容器中获取对象
public class main {
public static void main(String[] args) {
//获取IOC容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//在容器中获取Bean对象
BookService bookService = (BookService) ctx.getBean("bookService");
}
}
2、DI入门案例
2.1 思路整理
- 想要实现DI(依赖注入),必须基于IOC管理Bean。
- 不需要在类对象中保留new形式创建的对象。
- 采用配置文件的形式进行Bean之间的内容描述
2.2 入门案例代码实现(基于上方的IOC代码)
步骤1:去除代码中的new
步骤2:为属性提供setter方法
public class BookServiceImpl implements BookService {
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}
步骤3:修改配置完成注入
<?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标签表示配置Bean
id属性表示给Bean起名字
class属性表示给Bean定义类型
-->
<bean id="bookDao" class="com.AT.dao.Impl.BookDaoImpl"></bean>
<bean id="bookService" class="com.AT.service.impl.BookServiceImpl">
<!--配置service与dao的关系-->
<!--property标签表示配置当前Bean的属性
name属性表示配置哪一个具体的属性
ref属性表示参照哪一个Bean
-->
<property name="bookDao" ref="bookDao"></property>
</bean>
</beans>
注意:配置中的两个bookDao的含义是不一样的
- name="bookDao" 中的bookDao的作用是让Spring的IOC容器在获取到名称后,将首字母大写,前面加上set找对应的setBookDao()方法进行对象注入。
- ref="bookDao"中的bookDao的作用是让Spring能在IOC容器中找到id为bookDao的Bean对象给bookService进行注入。