Spring 介绍和使用xml配置容器(Bean容器/容器工厂)

Spring 介绍和使用xml配置容器(Bean容器/容器工厂)

Spring 介绍

Spring是什么

Spring 就是一个庞大的工厂框架,核心是容器工厂(IOCAOP)
Spring 本身解决了(IOCAOP),本质核心是容器工厂

需要学习什么

file

maven配置

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.30</version>
</dependency>

依赖包介绍

file

如何使用

主要分成获取类和使用类

获取类

获取类方式有两种 xml(1.4)注解(2.5后)
注解是jdk1.5提出的,但是 springjdk1.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);