1. 程式人生 > >spring aware的使用;spring aware 各種介面的作用解析

spring aware的使用;spring aware 各種介面的作用解析

spring aware的使用:

使用了spring Aware 你的bean將會和spring框架耦合,

spring aware 的目的是為了讓bean獲取spring容器的服務:

spring 提供的aware的介面:

BeanNameAware :可以獲取容器中bean的名稱

BeanFactoryAware:獲取當前bean factory這也可以呼叫容器的服務

ApplicationContextAware: 當前的applicationContext, 這也可以呼叫容器的服務

MessageSourceAware:獲得message source,這也可以獲得文字資訊

applicationEventPulisherAware:應用事件釋出器,可以釋出事件,

ResourceLoaderAware: 獲得資源載入器,可以獲得外部資原始檔的內容;

Bean例項生命週期的執行過程如下:

Spring對bean進行例項化,預設bean是單例;

Spring對bean進行依賴注入;

如果bean實現了BeanNameAware介面,spring將bean的id傳給setBeanName()方法;

如果bean實現了BeanFactoryAware介面,spring將呼叫setBeanFactory方法,將BeanFactory例項傳進來;

如果bean實現了ApplicationContextAware介面,它的setApplicationContext()方法將被呼叫,將應用上下文的引用傳入到bean中;

如果bean實現了BeanPostProcessor介面,它的postProcessBeforeInitialization方法將被呼叫;

如果bean實現了InitializingBean介面,spring將呼叫它的afterPropertiesSet介面方法,類似的如果bean使用了init-method屬性聲明瞭初始化方法,該方法也會被呼叫;

如果bean實現了BeanPostProcessor介面,它的postProcessAfterInitialization介面方法將被呼叫;

此時bean已經準備就緒,可以被應用程式使用了,他們將一直駐留在應用上下文中,直到該應用上下文被銷燬;

若bean實現了DisposableBean介面,spring將呼叫它的distroy()介面方法。同樣的,如果bean使用了destroy-method屬性聲明瞭銷燬方法,則該方法被呼叫;

相關推薦

spring aware的使用spring aware 各種介面作用解析

spring aware的使用: 使用了spring Aware 你的bean將會和spring框架耦合, spring aware 的目的是為了讓bean獲取spring容器的服務: spring 提供的aware的介面: BeanNameAware :可以獲取

SpringAware和Capable的區別和作用

Aware XXXAware在Spring裡表示對XXX可以感知,通俗點解釋就是:如果在某個類裡邊想要使用spring的一些東西,就可以通過實現XXXAware介面告訴Spring, Spring看到後就會給你送過來,而接收的方式是通過實現介面唯一的方法setXXX。 栗子: 比如一個類需要使用當前

spring原始碼分析:Aware介面讓你的bean對容器直接操作

相信大家都知道很多其他框架,比如mybatis,shiro等等,spring框架本身有些類會實現ApplicationContextAware,BeanFactoryAware或者等等其他XXXAware,這是用來幹嘛呢? spring容器來管理bean。如果說bean需要知道容器的

spring-beans factory包 Aware,FactoryBean,InitializingBean,ObjectFactory介面講解

一、類繼承圖 二、Aware介面功能概述        該介面跟java.io.Serializable類似,只是一個標記介面,沒有任何具體的方法,實現該介面的bean會在sping容器初始化的時候執行回撥,從而把bean需要的

Spring IOC -生命週期,aware介面

初始化和銷燬的三種方法: 1,預設全域性的初始化和銷燬方法; 2,實現介面的初始化和銷燬方法; 3,配置檔案中配置初始化和銷燬方法; 這三個方法同時使用時,1預設的則不執行,而23兩種都會執行,並且是2實現介面的方式先於配置中3的執行。 1預設的全域性

spring事務管理,基於xml配置完成事務回滾spring中資料庫表中欄位名和pojo中屬性名不一致時候,實現RowMapper介面手動封裝

宣告使用JDK8,spring5.0.7, 測試說明: service 層 宣告介面進行轉賬,從A轉賬B ,然後對AB 進行更新操作,在事務中對find方法開啟 只讀許可權,無法進行更新操作,造成事務回滾進行測試事務; 主要測試方法:* void tra

23、自動裝配-Aware注入Spring底層元件&原理

23、自動裝配-Aware注入Spring底層元件&原理 Aware 介面,提供了類似回撥函式的功能 自定義元件想要使用Spring 容器底層的一些元件(Application Context,Bean Factory);自定義元件需要實現xxxAware介面;在建立物件的時候,會呼叫介面

spring包中每個jar包的作用

 除了spring.jar檔案,Spring還包括有其它13個獨立的jar包,各自包含著對應的Spring元件,使用者可以根據自己的需要來選擇組合自己的jar包,而不必引入整個spring.jar的所有類檔案。 (1) spring-core.jar 這個jar檔案包含S

SpringBoot4-spring高階話題-spring aware,多執行緒,計劃任務,條件註解@Conditional

一:Spring Aware 1,點睛      spring的依賴注入的最大亮點就是你所有的Bean對Spring容器的存在是沒有意識的,即你可以將你的容器替換成別的容器,如Google Guice,這時Bean之間的耦合度很低。     但是在實際專案中,你不可避免的要

spring學習9 Spring工作原理及其作用

支持 上下 構建 並且 tro 配置管理 模塊 operate 有助於 1.springmvc請所有的請求都提交給DispatcherServlet,它會委托應用系統的其他模塊負責負責對請求進行真正的處理工作。   2.DispatcherServlet查詢一個或多個Han

Spring實戰(七)Bean 的作用

targe app value aop get java ppi component size   1、Spring中bean 的多種作用域 單例(Singleton):整個應用中只創建一個bean 的實例,Spring默認創建單例的bean; 原型(Prototype)

過濾器 spring攔截器 切片 小結

進入 mod req fff bubuko http @override 進行 配置 1. springMVc的攔截器 實現HandlerInterceptor接口,如下: public class HandlerInterceptor1 implements Handl

MyBatis-Plus 多庫部署方式spring mvc 多庫部署方式

1、實現mybatis-plus的多個數據庫的切換方式      原始碼地址:https://github.com/baomidou/mybatisplus-spring-mvc 2、因為其文件都是相互依賴的,所以修改配置,就是在已有的配置中修改    

spring cloud】spring cloud 使用feign呼叫,1.fallback熔斷器不起作用,2.啟動報錯Caused by: java.lang.ClassNotFoundException: com.netflix.hystrix.contrib.javanica.aop.asp

1.首先使用feign呼叫,需要配置熔斷器 2.配置熔斷器需要將熔斷器注入Bean,被spring可以掃描到 3.熔斷器類需要實現feignClient介面 4.hystrix的jar需要被maven引用,並且在classpath下 5.注意,feignClient上儘量不要使用@RequestMap

(7)Spring學習記錄---Spring_bean(bean的作用域)

singleton  <!-- 使用bean的scope屬性來配置bean的作用域: singleton:預設值。單例模式,容器初始化時建立。在整個容器的生命週期內只建立一個bean。 prototype:原型的。容器初始化時不建立。在每次建立例項物件時創新一

Spring Boot Actuator監控(各個介面介紹)

Spring Boot Actuator 提供了 一些介面,向外部提供本應用程式的監控資訊。 介面分為三大類: 應用配置類:獲取應用程式中載入的應用配置、環境變數、自動化配置報告等與Spring Boot應用密切相關的配置類資訊。 度量指標類:獲取應用程式執行過程中

Spring Security之旅————————————restful風格介面簡述,過濾器配置(2)

restful介面的完成度簡介 , 分為四級 利用三種方式攔截介面請求  Filter package com.sola.filter; import java.io.IOException; import javax.servlet.Filter; im

使用Spring JPA中Page、Pageable介面和Sort類完成分頁排序

Spring專案使用JPA進行資料庫操作可以極大的簡化開發,下面我將用一個完整的Demo為大家展示分頁查詢並顯示在前臺頁面 首先來說一下分頁和排序所用到的Page、Pageable介面和Sort類都是什麼 JpaRepository提供了兩個和分頁和排序有關的查詢 List findAl

Spring專案整合apidoc生成api介面文件

一、背景需求  JavaWeb/spring專案寫成的api介面,需要自動生成api文件,甚至需要線上測試介面。考慮實現的方案有swagger,apidoc,spring rest docs。在之後的專案都有一一嘗試,最終還是覺得apidoc的方式比較合適,雖然有一些問題(針對線上

Spring原始碼分析——BeanFactory體系之介面詳細分析

Spring原始碼分析——BeanFactory體系之介面詳細分析   Spring的BeanFactory的繼承體系堪稱經典。這是眾所周知的!作為Java程式設計師,不能錯過!   前面的博文分析了Spring的Resource資源類Resouce。今天開始分析Spring的