SpringBoot總結
一,Spring 設計思想
OOP: 面向對象編程-》封裝、繼承、多態
BOP: 面向Bean編程-》一切從Bean開始
AOP: 面向切面編程-》解藕、專 人做專事
IOC: 控制反轉,將new 對象的操作交給Spring統一管理-》轉交控制權
DI/DL: 依賴注入/依賴查找-》自動賦值
DI和AOP都依賴 IoC
二,Spring5新特性及高頻面試題
2.1, 升級JDK8,J2EE 7
2.2, 反應式編程
2.3 全面支持注解編程
2.4 支持函數式編程
2.5 全面支持Rest風格配置
2.6, 對HTTP2.0全面支持
2.7 Kotlin和Spring WebFlux
2.8 可以直接使用Lambda表達式來注冊Bean
2.9 Spring Web MVC全面最新的Servlet API (去Servlet化)
2.10 Junit5直接執行并發測試
2.11 丟棄Hibernate3/4,只支持Hibernate5,對Portlet、Velocity、XMLBeans、JDO、Guava終止支持
2.12 Spring核心容器做了一些更新 @Nullable、Logback
三,Spring5注解編程基礎組件(Spring Annotation API使用)
3.1 配置組件(Configure Components)
@Configuration: 把一個類作為一個IoC容器,它的某個方法頭上如果注冊了@Bean,就會作為這個Spring容器中的Bean.
@ComponentScan: 在配置類上添加該注解,默認會掃描該類所在的包下所有的配置類,相當于之前的
@Scope: 用于指定作用域(用在類上)
prototype: 原型、多例
singleton: 單例
request: 主要用于web模塊,同一次請求只創建一個實例
session: 主要用于web模塊,同一次session只創建一個實例
@Lazy: 表示延遲初始化 默認非延遲加載,一般解決bean循環引用問題
@Conditional: Spring4開始提供,作用是按照一定的條件進行判斷,滿足條件給容器注冊Bean.
@Import: 導入外部資源 外部資源可以不加任何注解修飾,通知該注解注入Bean
lifecycle 生命周期控制(對Bean生命周期的監控):
1, 配置@Bean的參數 initMethod = XXXMethod(),destroyMethod=XXXMethod()
2, 分別實現InitializingBean和DisposableBean接口 重寫destroy()和afterPropertiesSet()進行銷毀和初始化.
3, @PostConstruct 用于指定初始化方法(用在方法上);
@PreDestory: 用于指定銷毀方法(用在方法上);
@DependsOn: 定義Bean初始化及銷毀時的順序.
4, 自定義一個類,實現BeanPostProcessor接口 重寫postProcessBeforeInitialization和postProcessAfterInitialization接口.這里針對指定包下所有Bean進行統一處理
3.2 賦值組件(自動裝配 )Injection Comp