Spring入门篇
Spring Frameword
- Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基

1.1 Spring Frameword系统架构图

1.2 Spring Frameword学习路线

1.3 核心概念
- 代码现状
- 耦合度偏高
- 解决方案
- 使用对象时,在程序中不要主动new产生对象,转换为由外部提供对象
- IoC(Inversion of Control)控制反转
- 对象的创建控制权由程序转到外部,这种思想为控制反转

1.3.1 IoC ( Inversion of Control ) 控制反转
- 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转
1.3.2 Spring技术对IoC思想进行了实现
- Spring提供了一个容器,称为IoC容器用来充当IoC思想中的“外部”
- IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IOC容器中统称为Bean
1.3.3 DI ( Dependency Injection ) 依赖注入
- 在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入

1.3.4目标:充分解耦
- 使用IoC容器管理bean (IoC)
- 在IoC容器内将有依赖关系的bean进行关系绑定 (DI)
1.3.5最终效果
- 使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系
1.4IoC入门
- 导入Spring坐标
<dependency>
<groupId>org.springframeword</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
- 定义Spring管理的类(接口)
public interface BookService{
public void save();
}
public class BookServiceImpl implements BookService {
private BookDao bookDao = new BookDaoImpl();
public void save(){
boolDao.save();
}
}
- 创建Spring配置文件,配置对应类作为Spring管理的bean
<?xml version="1.” encoding="UTF-8"?>
<beans xmIns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="bookService"class="com.itheima.service.impl.BookServiceImpl"></bean>
</beans>
注意事项:bean 定义时id属性在同一个上下文中不能重复
- 初始化IoC容器 ( Spring核心容器/Spring容器 ),通过容器获取bean
public class App {
public static void main(String[] args) {
//加载配置文件得到上下文对象,也就是容器对象
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取资源
BookService bookService = (BookService)tx.getBean("bookService");
bookService.save();
}