Spring 介绍
Spring是什么
Spring
就是一个庞大的工厂框架,核心是容器工厂(IOC
和AOP
)Spring
本身解决了(IOC
和AOP
),本质核心是容器工厂
需要学习什么
maven配置
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.30</version>
</dependency>
依赖包介绍
如何使用
主要分成获取类和使用类
获取类
获取类方式有两种 xml(1.4)
和 注解(2.5后)
注解是jdk1.5
提出的,但是 spring
是 jdk1.4
创建的,当时只能通过 xml
获取类
Bean 介绍
Spring
管理的对象叫 Bean
不能实例化的组件是不允许创建为 Bean
(例如:接口、抽象类)
实现类是普通的类,因此可以创建实例纳入 Spring 容器中管理(装配、配置)
配置文件
id 唯一装配的容器中的唯一标识,可以理解成 Map
中的 key
class Bean的完整类名,Spring 会使用完整类名进行反射创建实例纳入容器中管理
<!-- 装配各种bean对象 -->
<bean id="userService" class="top.lldwb.spring.ch01.service.impl.UserServiceImpl"/>
使用类
创建容器工厂
在 spring
框架中存在多种不同的容器工厂,每个容器工厂都有自身的特点和功能。
其中所有工厂实现的都是 ApplicationContext
接口,根据需要创建不同的实现类,比如:需要通过解析 xml
配置文件来初始化一个容器工厂时,可以创建 ClassPathXmlApplicationContext
的对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
从容器中获取类的方法(ApplicationContext API)
从容器中根据 Bean 的 id 获取 Bean 的实例
((强制类型转换)context.getBean("userService"));
使用泛型的方式不需要强制转换
context.getBean("userService",UserService.class);
如果接口的实现类只有一个,可以不需要指定id,只需要泛型类型即可
context.getBean(UserService.class);