Spring

Spring范围很广,暂且开一篇胡乱拼,后期增多了内容再细分。

1 渊源

1.1 spring

      原型在200210由Rod Johnson发布的书中体现,后来在200403spring 1.0版本发布,201709spring 5.0发布,

spring ioc 

控制反转,管理容器中的bean,主要使用di依赖注入实现。

spring Aop

面向切面,调用者和被调用者解藕,用于权限、缓存等功能实现。

spring transaction

事务管理,一通过配置文件,二基于注解

spring mvc

数据,业务,展示分离

spring security

提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以spring应用上下文中配置的bean,为应用提供声明式的安全访问控制功能。

spring schedule

 基于spring能用统一的配置和编码风格来使用schedule方案,支持Jdk time、concurrent、quartz

1.2 spring boot

     由于spring的边界不断的进行扩充,导致了基础配置越来越复杂,spring boot应运而生,201404 springboot 1.0.0发布,其核心思想,约定大于配置。

引入web模块

   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>

开发环境调试

spring-boot-maven-plugin

json接口开发

@RestController

@RequestMapping(“/test”)

自定义filter

@Configuration

@Bean

 自定义配置文件

@Component

@Value(“${asd.sdf}”)

1.3 spring cloud 

      基于spring boot开发,解决微服务架构中的服务治理而提供的开发框架。是一系列框架的有序集合,简化了分布式基础设施的开发,如发现注册,配置中心,消息总线,负载均衡,断路器,数据监控等。

2 Spring bean的作用域  

<bean=“” class=“” scope=“”/>

2.1 singleton单例 缺省作用域

容器中只会存在一个共享的bean实例,无论多少个bean引用他,始终指向一个对象。

2.2 prototype原型

每次通过spring容器获取的原型定义的bean时,容器都会创建一个新的bean实例。

2.3 request

 不同的http request产生不同的bean,该bean只在当前request有效。

2.4 session  

不同的http session产生不同的bean,该bean仅在当前session有效。

2.5 global session

在一个全局的http session中,容器会返回该bean的同一个实例,仅在portlet context时有效

3 Spring bean的生命周期

Spring容器可以管理singleton作用域下的bean生命周期

而对于prototype作用域的bean,只负责创建,而不再跟踪其生命周期

4 spring bean实例化顺序

实例化bean对象

设置bean属性

检验aware相关接口并设置相关依赖

Beanpostprocessor前置处理

检查是否是initbean决定是否调用afterpropertiesset

检查是否配置有init-method

Beanpostprocessor后置处理

注册destruction相关回调接口

使用中

检查是否有disposablebean接口

检查是否有destroy方法

原文地址:https://www.cnblogs.com/guobm/p/10037328.html