Bean 注解(Annotation)配置(2)- Bean作用域與生命周期回調方法配置



Spring 系列教程


Bean XML 配置(2)- Bean作用域與生命周期回調方法配置中,介紹了使用XML配置Bean作用域與生命周期回調方法。本文介紹使用注解方式配置 Bean作用域與生命周期回調方法。

Bean作用域

spring中創建bean時,可以指定作用域。作用域有以下5種類型:

  • 單例(singleton)
    默認作用域,一個spring容器中只有Bean的一個實例。

  • 原型(prototype)
    每次獲取Bean時生成一個新的實例。

  • 請求(request)
    作用域是單個http請求,單個http請求只有Bean的一個實例。一旦請求完成,bean實例將被銷毀。

  • 會話(session)
    作用域是單個會話,單個會話只有Bean的一個實例。一旦會話結束,bean實例將被銷毀。

  • 全局會話(global-session)
    在Portlet應用程序中使用,每個全局會話只有Bean的一個實例。普通Servlet應用中與會話作用域無區別。

Bean的作用域用注解方式設置,可以用@Scope注解。

示例:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("prototype") // 設置作用域
public class App {

    // ...
}

使用注解指定初始化回調方法與銷毀回調方法

Spring容器負責管理Bean的生命周期,如下所示:

  1. 創建bean實例
  2. 設置bean的屬性值
  3. 調用初始化回調方法
  4. 使用Bean
  5. 調用銷毀回調方法
  6. 銷毀Bean

Bean在創建時,需要執行一些資源(數據庫、套接字、文件)申請等初始化工作,可以在Bean的初始化回調方法中處理,此方法由Spring容器調用。

同樣Bean在銷毀時,需要執行一些資源(數據庫、套接字、文件)申請等銷毀工作,可以在Bean的銷毀回調方法中處理,此方法由Spring容器調用。

初始化回調方法與銷毀回調方法可通過下面的注解指定:

  • @PostConstruct - 此注解指定初始化回調方法
  • @PreDestroy - 此注解指定銷毀回調方法

示例:

package com.qikegu.demo;
 
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;


public class App {

    // ...
    
    @PostConstruct
    public void init() {
        System.out.println("初始化...");
    }
    
    @PreDestroy
    public void close() {
        System.out.println("銷毀...");
    }
    
    // ...
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM