spring註解開發(二) bean的生命週期
指定類的初始化和銷燬方法
可以指定自己寫的方法
在類中寫好方法
在註解中指定
第二種方法,繼承介面實現方法
就不用再指明方法了
還可以使用註解方式
BeanPostProcessor 的使用
/**
* bean的生命週期:
* bean建立---初始化----銷燬的過程
* 容器管理bean的生命週期;
* 我們可以自定義初始化和銷燬方法;容器在bean進行到當前生命週期的時候來呼叫我們自定義的初始化和銷燬方法
*
* 構造(物件建立)
* 單例項:在容器啟動的時候建立物件
* 多例項:在每次獲取的時候建立物件\
*
* BeanPostProcessor.postProcessBeforeInitialization
* 初始化:
* 物件建立完成,並賦值好,呼叫初始化方法。。。
* BeanPostProcessor.postProcessAfterInitialization
* 銷燬:
* 單例項:容器關閉的時候
* 多例項:容器不會管理這個bean;容器不會呼叫銷燬方法;
*
*
* 遍歷得到容器中所有的BeanPostProcessor;挨個執行beforeInitialization,
* 一但返回null,跳出for迴圈,不會執行後面的BeanPostProcessor.postProcessorsBeforeInitialization
*
* BeanPostProcessor原理
* populateBean(beanName, mbd, instanceWrapper);給bean進行屬性賦值
* initializeBean
* {
* applyBeanPostProcessorsBeforeInitialization(wrappedBean, beanName);
* invokeInitMethods(beanName, wrappedBean, mbd);執行自定義初始化
* applyBeanPostProcessorsAfterInitialization(wrappedBean, beanName);
*}
*
*
*
* 1)、指定初始化和銷燬方法;
* 通過@Bean指定init-method和destroy-method;
* 2)、通過讓Bean實現InitializingBean(定義初始化邏輯),
* DisposableBean(定義銷燬邏輯);
* 3)、可以使用JSR250;
* @PostConstruct:在bean建立完成並且屬性賦值完成;來執行初始化方法
* @PreDestroy:在容器銷燬bean之前通知我們進行清理工作
* 4)、BeanPostProcessor【interface】:bean的後置處理器;
* 在bean初始化前後進行一些處理工作;
* postProcessBeforeInitialization:在初始化之前工作
* postProcessAfterInitialization:在初始化之後工作
*
* Spring底層對 BeanPostProcessor 的使用;
* bean賦值,注入其他元件,@Autowired,生命週期註解功能,@Async, BeanPostProcessor;
*/
繼承 ApplicationContextAware 的類還可以獲取 ApplicationContext
相關推薦
spring註解開發(二) bean的生命週期
指定類的初始化和銷燬方法 可以指定自己寫的方法 在類中寫好方法 在註解中指定 第二種方法,繼承介面實現方法 就不用再指明方法了 還可以使用註解方式 BeanPostProcessor 的使用 /** * bean的生命週期:
spring註解開發(一) bean的註冊
通過註解注入bean: 實體類: 執行結果 @ComponentScans 使用: value:配置掃描的包路徑,spring會掃描這個包及其子包,也是預設情況 @Filter:配置過濾器, 設定過濾器型別,預設註解型別
總結Spring框架擴充套件點(二)bean生命週期中的擴充套件點(持續更新中...)
面向業務開發的時候,程式設計師需要明白業務的邏輯,並設計程式碼結構。而在進行中介軟體開發的時候,則需要明白框架的邏輯,進行開發。 所以要開發提供給spring的中介軟體,需要知道spring中有哪些擴充套件點,好在對應的地方插入我們的功能。 1. Spring容器初始化b
Spring 註解驅動(二)WEB 註解開發
Spring 註解驅動(二)WEB 註解開發 Spring 系列目錄(https://www.cnblogs.com/binarylei/p/10198698.html) 一、基本使用 在 Servlet 3.0 時支援註解啟動,不再需要 web.xml 配製檔案。 1.1 Servlet 3.0 註
spring註解開發(七) 容器建立過程
傳入配置類後, 註冊配置類,主要是 refresh() public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdo
spring註解開發(六) 其他擴充套件
BeanFactoryPostProcessor 這個類會在所有的bean裝配後未例項化執行 postProcessBeanFactory 方法 在BeanFactory標準初始化之後呼叫,來定製和修改BeanFactory的內容 所有的bean
spring註解開發(五) 事務
在方法上新增 @Transactional 註解 可以手動註冊事務管理器 //註冊事務管理器在容器中 @Bean public PlatformTransactionManag
Spring 學習筆記(二)- Bean 的配置
# 概要 IOC & DI 概述 配置 bean 配置形式:基於 XML 檔案的方式;基於註解的方式 Bean 的配置方式:通過全類名(反射)、通過工廠方法(靜態工廠方法 & 例項工廠方法)、FactoryBean IOC 容器 Bean
Spring來一發(二)Bean的管理
1、Bean的初始化 Spring中Bean的初始化是在ApplicationContext應用上下文載入的時候實現的,Spring通過兩種方式可以發現需要初始化的Bean,一種方式是加@Bean註解,另一種是在xml種定義Bean。 在啟動web容器時,ContextLoaderListe
Servlet學習之旅(二):生命週期
Servlet 生命週期 Servlet 生命週期可被定義為從建立直到毀滅的整個過程。以下是 Servlet 遵循的過程: Servlet 通過呼叫 init () 方法進行初始化。 Servlet 呼叫 service() 方法來處理客戶端的請求。 Servlet
前端框架Aurelia——元件Component(二)元件生命週期
constructor() - The view-model's constructor is called first.created(owningView: View, myView: View
vue學習(二) vue生命週期 vue自定義指令和過濾器
生命週期鉤子函式 vue的生命週期圖示 vue的幾個鉤子函式 直接程式碼展示: <div id="box"> {{msg}} </div> <script>
Spring註解驅動開發(二)
AOP-AOP功能測試 /** * 切面類 * @author lfy * * @Aspect: 告訴Spring當前類是一個切面類 * */ @Aspect public class LogAspects { //抽取公共的切入點表示式 //1、本
Spring學習(二)| Bean配置
文章目錄 1. 什麼是IoC 2. 配置Bean 2.1 配置形式 2.1.1 基於XML檔案的形式 2.1.2 基於註解的方式 2.1.2.1 元件掃描
Spring啟動流程(二)之Spring載入Bean Definition的流程
繼上篇Spring啟動流程(一) prepareRefresh() prepareRefresh();//初始化配置和環境 obtainFreshBeanFactory() // Tell the subclass to refresh the internal bean fac
Spring的學習(二):裝配Bean
Spring容器負責建立應用程式中的bean並通過DI來協調這些物件之間的關係。當描述bean如何進行裝配時,Spring具有非常大的靈活性,它提供了三種主要的裝配機制: 在XML中進行顯示配置 在Java中進行顯示配置 隱式的bean發現機制和自動裝配 1
Spring Boot2 精髓--Web開發(二)
註解@PathVariable用於從請求URL中獲取引數並對映到方法引數中,如下程式碼: @Controller @RequestMapping("/user/{id}") public class HelloworldController { @Autowired
JavaWeb專案開發(二):Servlet+Bean+Dao+MySQL
需要使用的技術: JSP動態網頁 Servlet獲得客戶端請求、轉發請求、跳轉到下一個介面 JavaBean 業務Bean (業務邏輯具體實現類),處理業務邏輯 Dao 訪問資料庫,操作資料庫例表 (增刪查改) MySQL 資料庫 實現系統以下介面和功能: 登入 我的資
基於java的Spring容器配置(二)(@Configuration,@Bean,@Import,@ImportSource)
@Bean的使用 @Bean是一個方法級別的註解類似於XML的元素,這個註解提供了一些的屬性例如 init-method, destroy-method, autowiring 和name 應用場合:@Configuration註解或者@Componen
Spring學習筆記(二)——註解建立物件和注入屬性
一、Bean相關的註解 與SpringBean相關的註解有以下四大類: @Component:標註一個普通的Spring Bean類 @Controller:標註一個控制器元件類 @Service:標註一個業務邏輯元件類 @Repository:標註一個D