1. Spring-v1.0 配置文件
1.0 项目pom.xml增加maven的版本
<properties>
<maven-jar-plugin.version>3.6.3</maven-jar-plugin.version>
<maven.complier.source>8</maven.complier.source>
<maven.complier.target>8</maven.complier.target>
</properties>
1.1 module的pom.xml中增加Spring-context的依赖
增加了一个spring-context,便于创建bean对象```xml
|
| <a name="HIbuc"></a>
## 1.2 在modul中的配置文件 applicationContext.xml
```xml
<?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">
<!-- xsi: xml schema definition: 定义xml文档结构的-->
<bean class="com.bobo.service.UserService"></bean>
</beans>
|
|
注:此时在applicationContext.xml中配置的是
2. Spring-v2.0 容器扫描 Spring-tx
特点: 注解的一个过渡时期 |
---|
2.1 新增了2个内容
compoment-scan
@Compoment 注解
作用: 简化bean的管理 |
|
注:在applicationContex.xml中配置的是
3. Spring-v3.x 静态注解
3.1 spring-v3.0
特点: 配置文件+配置类混合的时代
3.2 spring-v3.1
特点: 没有配置文件,用@component + 配置类中用
@ComponentScan @Configuration
3.3 Spring-v3.1 多个配置类
@Server/@Component @Import(value={})
创建/解析过程:
1. module中的applicationContext.xml开启context组件扫描
1. 创建多个JavaBean类,并用@component进行注解
1. 创建多个Java配置类,创建方法返回对应的javaBean实例,并用@Bean进行注解标识,并用@configuration进行配置类标识
1. 主配置文件中,用@configuration进行配置类标识;@ComponentScan进行组件扫描,获取对应的JavaBean类以及配置类;@Import(value={ }) 引入其他配置类
|
4. Spring-3.2x 动态注入JavaBean类—->对Import标签的变形
4.1 方法一: 实现ImportSelector类
此时不会将ImportSelect接口的实现类注入到容器中,而是将实现类中的方法的返回值注入其中。 | | —- | |
4.2 方法二:实现ImportBeanDefinitionRegistrar
通过注册javaBean的形式,将bean对象注册到ImportBeanDefinitionRegistrar接口的实现类的容器中。 |
5. Spring-v3.2 Enablexxx注解
@Enablexxx 的本质就是之前所讲的@Import |
6. Spring-v4.0 @Conditional注解
6.1 用法
| | —- |
7. Spring-v5.0 @Indexed注解
作用: 解决@Component注解的效率问题 已经在@ComponentScan中内嵌了 |
---|
8. 额外知识点: SPI
8.1 SPI理论
service provider interface
8.2 step1: 创建接口及实现类
8.3 step2: 动态调用接口实现类(多个实现类情况下,原理一样)
| | | | |