10、Spring
Bean的生命周期
1、通过BeanDifinition 定义Bean
2、构造方法推断,选出一个构造方法
3、实例化,构造方法方法反射得到对象
4、属性填充,给属性进行自动填充
5、初始化,对其他属性赋值、校验
6、初始化后,AOP、生成代理对象。

Spring 实现单例的方式:
-
xml:<bean id="userService" class="top.snailclimb.UserService" scope="singleton"/>``
-
注解:
@Scope(value = "singleton")
SprigBoot的自动配置原理
@Configuration(允许在上下文中注册额外的 bean 或导入其他配置类)、
@ComponentScan(扫描启动类所在的包下所有的类)
@EnableAutoConfiguration开启自动装配,通过 SpringFactoriesLoader 最终加载META-INF/spring.factories中的自动配置类实现自动装配,自动配置类其实就是通过@Conditional按需加载的配置类,想要其生效必须引入spring-boot-starter-xxx
Spring、SpringMVC、SpringBoot、SpringCloud
spring MVC 是基于Spring的一个 MVC 框架 ,MVC分别是模型、控制、视图,实现了逻辑、视图、数据的代码层逻辑结构。主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的一部分。
springBoot是spring的一个快速开发包,为了简化开发,可快速整合其他的框架得力于starter机制。使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。提供了一堆依赖打包,习惯大于约定
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
SpringCloud
Hystrix熔断器;Config分布式配置中心;GateWay网关、Eureka微服务治理、bus消息总线、负载均衡Ribbon
BeanFactory是Spring中非常核心的组件,表示Bean工厂,用于生成bean
Spring中Bean的作用域?
在spring中bean交给了IOC进行管理,那么bean有不一样的作用域
| 来源 | 说明 |
|---|---|
| singleton | 默认Spring Bean作用域,一个BeanFactory有且仅有一个实例 |
| prototype | 原型作用域,每次依赖查找和依赖注入生成新Bean对象,每一次去ioc容器中获取bean的时候,都会有一个新的实例对象。 |
| request | 在web应用中,将Spring Bean存储在ServletRequest上下文中,每一次http请求,都会创建一个新的bean |
| session |
在web应用中,将Spring Bean存储在HttpSession中,同一个session会有同一个bean的实例 |
| application | 在web应用中,将Spring Bean存储在ServletContext中,是全局session共享同一个bean实例。 |

浙公网安备 33010602011771号