Spring管理的bean初始化方法的三種方式,以及@PostConstruct不起作用的原因
1:Spring 容器中的 Bean 是有生命週期的,spring 允許 Bean 在初始化完成後以及銷燬前執行特定的操作。下面是常用的三種指定特定操作的方法:
- 通過實現InitializingBean/DisposableBean 介面來定製初始化之後/銷燬之前的操作方法;
- 通過<bean> 元素的 init-method/destroy-method屬性指定初始化之後 /銷燬之前呼叫的操作方法;
- 在指定方法上加上@PostConstruct或@PreDestroy註解來制定該方法是在初始化之後還是銷燬之前呼叫。
2:@PostConstruct不起作用的原因
專案用的spring mvc框架,配置檔案如下:
xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd"
default-lazy-init="true">
我在service中的一個方法加上@PostConstruct註解,引用的是 javax.annotation.PostConstruct;
這個方法不是應該在初始化之前執行嗎?現在卻始終沒有執行,求大神指點
解決方法:
@PostConstruct是在物件構造完成後呼叫init-method之前執行的,你在xml中default-lazy-init="true"申明瞭延遲初始化,意味著容器剛啟動,如果這個bean沒有被呼叫,是不會初始化的,自然也就不會呼叫@PostConstruct的方法
相關推薦
Spring管理的bean初始化方法的三種方式,以及@PostConstruct不起作用的原因
1:Spring 容器中的 Bean 是有生命週期的,spring 允許 Bean 在初始化完成後以及銷燬前執行特定的操作。下面是常用的三種指定特定操作的方法: 通過實現InitializingBean/DisposableBean 介面來定製初始化之後/銷燬之前的操作
Spring中bean初始化的三種方式
(1)配置檔案 <!-- 1.構造方法例項化bean --> <bean id="book" class="service."/> <!-- 2.使用靜態工廠方法例項化bean ,由於方法是static,可以通過類名呼
Spring中Bean初始化的三種方法
常用的設定方式有以下三種: 通過實現 InitializingBean/DisposableBean 介面來定製初始化之後/銷燬之前的操作方法; 通過 <bean> 元素的 init-method/destroy-method屬性指定初始化之後 /銷燬之前呼叫的
Bean例項化的三種方式
-------------------siwuxie095 Bean 例項化的三種方式 1、Bean 例項化,即 在 Spring 的核心配置檔案中建立物件 編寫一個普通類(
awk執行的三種方式,以及awk以shell指令碼檔案形式執行的注意事項
awk執行有三種形式: 1.直接以命令列來執行,如圖: 2.以awk指令碼檔案來執行 需要加-f選項。 3.以shell指令碼的形式來執行 以shell指令碼形式執行時,行首的#!/bin/bash 需變換為#!/bin/awk(awk所在的路徑
Java 多執行緒傳值有三種方式,以及另類的第四種方式
現在博主的需求是:有可能在同一個執行緒類執行不一樣的程式。上邊兩個紅框中的cron4j排程器使用的是一個,根據引數不同來執行的。如果我點選後邊的手動執行一次,按照我上邊給出的java程式碼是無法實現的。看下邊的新的程式碼: (adsbygoogle = window.adsbygoo
六、AcriveMQ集群配置的三種方式,以及組合實現
nec 隨機 brush ast 一個隊列 項目 uri 文件 rand AcriveMQ集群配置 ·實現高可用,以排除單點故障引起的服務中斷 ·實現負載均衡以提升效率為更多客戶提供服務 集群方式
js二維陣列定義和初始化的三種方法
<script> var allarray=new Array(); var res=""; function loaddata() { for(var i=0;i<3;i++) { var starth=i*200; var strarw=i*200; var
bean例項化的三種方法
這篇文章總結了bean例項化方法Spring中bean例項方法有三種使用構造方法例項化bean使用靜態工廠例項化bean使用例項工廠例項化bean下面分別介紹這三種例項化bean方法具體操作。在介紹在三種建立bean方法前,我們先建立一個User類,我們通過建立User物件來
C語言結構體初始化的三種方法
直接上示例了 #include <stdio.h> struct student_st { char c; int score; const char *name; }; static void show_student(struct student
java Class-類載入的三種方法 以及類的初始化的六種方式 及終止執行的方式
1在命令列啟動虛擬機器jvm進行載入,2用class.forname()方法進行動態載入;3用ClassLoader.loadClass()進行動態載入;區別:用二方法載入時,還會對類進行解釋,執行其中的static語句塊; 用三方法時候,static語句塊
C語言 陣列初始化的三種常用方法({0}, memset, for迴圈賦值)以及原理
C語言 陣列初始化的三種常用方法({0}, memset, for迴圈賦值)以及原理 C語言中,陣列初始化的方式主要有三種:
spring中bean初始化過程
在傳統的Java應用中,Bean的生命週期非常簡單。Java的關鍵詞new用來例項化Bean(或許他是非序列化的)。這樣就夠用了。相反,Bean 的生命週期在Spring容器中更加細緻。理解Spring Bean的生命週期非常重要,因為你或許要利用Spring提供的機會來訂製
Spring控制Bean初始化順序2
@Order Spring 4.2 利用@Order控制配置類的載入順序 4.2 演示 兩個演示bean package com.wisely.spring4_2.order; public cl
spring(bean初始化、銷燬、注入,作用域)
IOC:控制反轉,也稱為依賴注入(DI)。這是一個過程。通常我們需要一個物件的時候,是主動建立物件,並且主動傳入到需要使用該物件的地方。而IOC則是由容器建立物件,注入到我們需要使用該物件的位置,兩者相比,一個主動,一個被動,被動的則是稱為依賴注入(控制反轉,由主動建立改為被動注入)。IO
Spring之jdbcTemplate:查詢的三種方式(單個值、單個對象、對象集合)
res finally 結構 execute date rep frame 參數 system JdbcTemplateDemo2.java 1 package helloworld.jdbcTemplate; 2 3 import org.springf
Spring MVC異常統一處理的三種方式
Spring 統一異常處理有 3 種方式,分別為: 使用 @ ExceptionHandler 註解 實現 HandlerExceptionResolver 介面 使用 @controlleradvice 註解 HandlerExceptionReso
Spring管理 hibernate 事務配置的五種方式
Spring配置檔案中關於事務配置總是由三個組成部分,DataSource、TransactionManager和代理機制這三部分,無論是那種配置方法,一般變化的只是代理機制這塊! 首先我建立了兩個類,一個介面一個實現: Java程式碼&
UITableViewCell初始化的兩種方式 (iOS開發篇)
UITableViewCell的兩種初始化方式(dequeueReusableCellWithIdentifier): 1,不註冊cell的方式: UITableViewCell *cell = [tableView dequeueReusableCellW
Spring Boot + Mybatis資料來源配置的三種方式
通過之前兩篇文章Spring Boot + JdbcTemplate和Spring Boot + Mybatis CRUD可以看出,無論是使用什麼框架,資料來源及框架的的一些配置總是不可避免的。在之前的兩篇文章中分別使用了application.properties和Java