日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

wkspring教程

Spring Bean 后置處理器

閱讀 (2260)

Spring——Bean 后置處理器

BeanPostProcessor 接口定義回調方法,你可以實現該方法來提供自己的實例化邏輯,依賴解析邏輯等。你也可以在 Spring 容器通過插入一個或多個 BeanPostProcessor 的實現來完成實例化,配置和初始化一個bean之后實現一些自定義邏輯回調方法。

你可以配置多個 BeanPostProcesso r接口,通過設置 BeanPostProcessor 實現的 Ordered 接口提供的 order 屬性來控制這些 BeanPostProcessor 接口的執行順序。

BeanPostProcessor 可以對 bean(或對象)實例進行操作,這意味著 Spring IoC 容器實例化一個 bean 實例,然后 BeanPostProcessor 接口進行它們的工作。

ApplicationContext 會自動檢測由 BeanPostProcessor 接口的實現定義的 bean,注冊這些 bean 為后置處理器,然后通過在容器中創建 bean,在適當的時候調用它。

例子:

下面的例子顯示如何在 ApplicationContext 的上下文中編寫,注冊和使用 BeanPostProcessor。

我們在適當的位置使用 Eclipse IDE,然后按照下面的步驟來創建一個 Spring 應用程序:

步驟描述
1創建一個名稱為 SpringExample 的項目,并且在創建項目的 src 文件夾中創建一個包 com.tutorialspoint
2使用 Add External JARs 選項,添加所需的 Spring 庫,解釋見 Spring Hello World Example 章節。
3com.tutorialspoint 包中創建 Java 類 HelloWorldInitHelloWorldMainApp
4src 文件夾中創建 Beans 配置文件 Beans.xml
5最后一步是創建的所有 Java 文件和 Bean 配置文件的內容,并運行應用程序,解釋如下所示。

這里是 HelloWorld.java 文件的內容:

package com.tutorialspoint;
public class HelloWorld {
   private String message;
   public void setMessage(String message){
      this.message  = message;
   }
   public void getMessage(){
      System.out.println("Your Message : " + message);
   }
   public void init(){
      System.out.println("Bean is going through init.");
   }
   public void destroy(){
      System.out.println("Bean will destroy now.");
   }
}

這是實現 BeanPostProcessor 的非常簡單的例子,它在任何 bean 的初始化的之前和之后輸入該 bean 的名稱。你可以在初始化 bean 的之前和之后實現更復雜的邏輯,因為你有兩個訪問內置 bean 對象的后置處理程序的方法。

這里是 InitHelloWorld.java 文件的內容:

package com.tutorialspoint;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.BeansException;
public class InitHelloWorld implements BeanPostProcessor {
   public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
      System.out.println("BeforeInitialization : " + beanName);
      return bean;  // you can return any other object as well
   }
   public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
      System.out.println("AfterInitialization : " + beanName);
      return bean;  // you can return any other object as well
   }
}

下面是 MainApp.java 文件的內容。在這里,你需要注冊一個在 AbstractApplicationContext 類中聲明的關閉 hook 的 registerShutdownHook() 方法。它將確保正常關閉,并且調用相關的 destroy 方法。

package com.tutorialspoint;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
   public static void main(String[] args) {
      AbstractApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
      obj.getMessage();
      context.registerShutdownHook();
   }
}

下面是 init 和 destroy 方法需要的配置文件 Beans.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld"
       init-method="init" destroy-method="destroy">
       <property name="message" value="Hello World!"/>
   </bean>

   <bean class="com.tutorialspoint.InitHelloWorld" />

</beans>

一旦你創建源代碼和 bean 配置文件完成后,我們就可以運行該應用程序。如果你的應用程序一切都正常,將輸出以下信息:

BeforeInitialization : helloWorld
Bean is going through init.
AfterInitialization : helloWorld
Your Message : Hello World!
Bean will destroy now.
關閉
程序員人生
主站蜘蛛池模板: 高清国产一区 | 亚洲aav | 亚洲欧美日韩精品 | 成年人午夜视频 | 日韩一区二区三区四区 | 中文字幕日韩高清 | 国产女主播在线视频 | 操综合| 国产91在线视频 | 在线欧美 | 欧美日韩网站 | 欧美视频一区 | 亚洲精品不卡 | 精品乱人伦一区二区三区 | 日韩一区欧美一区 | 成人在线一区二区三区 | 男女网站在线观看 | 日本亚洲欧美 | 一区二区三区 在线 | 欧美亚洲大片 | 亚洲一区二区三区免费观看 | 日本视频黄色 | 亚洲午夜视频在线观看 | 亚洲精品久久久久久久久久久久久 | 日韩久久一区二区三区 | 天天操天天射天天添 | 久久免费视频观看 | 在线国产精品视频 | 久久久久亚洲精品国产 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产综合一区二区 | 国产精品久久久久久久午夜 | 色丁香综合 | 欧美亚洲日本一区 | 日本高清视频在线 | 久久成人一区 | 午夜在线视频 | 国产 欧美 在线 | 日韩a在线 | 日韩欧美在线观看视频 | 毛片久久|