1. 程式人生 > >spring配置檔案中bean標籤中init-method和destroy-method和用註解方式配置

spring配置檔案中bean標籤中init-method和destroy-method和用註解方式配置

Person類

public class Person {
	private int i = 0;

	public Person(){
		System.out.println("例項化一個物件");
	}
	
	public void init(){
		System.out.println("呼叫初始化方法....");
	}
	
	public void destory222(){
		System.out.println("呼叫銷燬化方法....");
	}
}

applicationContext.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-2.5.xsd">
	<!-- 配置初始化方法和銷燬方法,但是如果要銷燬方法生效scope="singleton" -->				
	<bean id="person" class="com.xxc.initAndDestory.domain.Person" scope="singleton" lazy-init="false" init-method="init" destroy-method="destory"></bean>
</beans>

測試類:
public class Test {
	public static void main(String[] args) {
		//如果要呼叫銷燬方法必須用子類來宣告,而不是ApplicationContext,因為ApplicationContext沒有close()
		ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("com/xxc/initAndDestory/applicationContext.xml");
		Person p1 = (Person)ac.getBean("person");
		Person p2 = (Person)ac.getBean("person");
		ac.close();
	}
}

如果用註解方式配置:

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:context="http://www.springframework.org/schema/context" 
	   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-2.5.xsd  
                            http://www.springframework.org/schema/context   
                            http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
							
	<context:annotation-config/> 
							
	<!-- scope預設是 prototype:getBean()一次建立一個例項-->
	<bean id="person" class="com.xxc.initAndDestory.domain.Person"></bean>
</beans>

Person類
public class Person {
	private int i = 0;

	public Person(){
		System.out.println("例項化一個物件");
	}
	@PostConstruct //初始化方法的註解方式  等同與init-method=init
	public void init(){
		System.out.println("呼叫初始化方法....");
	}
	@PreDestroy	//銷燬方法的註解方式  等同於destory-method=destory222
	public void destory(){
		System.out.println("呼叫銷燬化方法....");
	}
}



相關推薦

spring配置檔案bean標籤init-methoddestroy-method註解方式配置

Person類 public class Person { private int i = 0; public Person(){ System.out.println("例項化一個物件"

SpirngMVC AOP 註解方式配置切面及IllegalArgumentException: error at ::0 formal unbound in pointcut 異常分析

ppi point exc sig 配方 mea oca 代碼 ger MEAVN代碼 <!-- springAOP核心包 --> <dependency> <groupId>org.springframework<

Spring註解注入bean配置檔案注入bean

註解的方式確實比手動寫xml檔案注入要方便快捷很多,省去了很多不必要的時間去寫xml檔案 按以往要注入bean的時候,需要去配置一個xml,當然也可以直接掃描包體,用xml注入bean有以下方法: 1 <?xml version="1.0" encoding="UTF-8"?> 2

Springbean標籤的屬性值:

Spring中bean標籤的屬性和值: <bean name="user" class="com.pojo.User" init-method="intMethod" destroy-method="destoryMethod" lazy-init="false" scope="sing

selenium 整合 spring 使用maven 將配置檔案打包到jar

<build> <defaultGoal>compile</defaultGoal> <resources> <resource> <directory>src/main/j

Mybatis配置檔案mapper標籤namespace屬性作用小結

這幾天試著搭建了SpringMVC、Spring和Mybatis的環境,深有感觸,尤其是對面向介面程式設計有了更加深層次的體會。 尤其是在持久層框架Mybatis,以前不管是Dao層還是Servi

修改apache配置檔案去除thinkphp url的index.php

例如你的原路徑是 http://localhost/test/index.php/index/add 那麼現在的地址是 http://localhost/test/index/add 如何去掉index.php呢? 1、httpd.conf配置檔案中載入了mod_rewrite.so模組&n

Java font.properties 配置檔案(中文/翻譯。。。)

The Java 2 platform defines five logical font names that every implementation must support: Serif, SansSerif, Monospaced, Dialog, and Dial

讀取Spring配置檔案獲取bean的幾種情況

情況一:spring的配置檔案applicationContext.xml在src路徑下(配置檔案放在class目錄下:) 直接使用  ApplicationContext applicationCo

VUE——在配置檔案config/index.js配置統一請求介面

在配置檔案config/index.js找到  module.exports={         dev:{             proxyTable:{}         }     } 更改為:     proxyTable:{         "/api":

在編寫Spring框架的配置檔案時,標籤無提示符的解決辦法

問題描述 初學者在學習Spring框架的過程中,大概會碰到這樣一個問題:在編寫Spring框架的配置檔案時,標籤無提示符。本文就來解決掉這種問題。 問題原因 由於Spring的schema檔案位於網路上,如果機器不能連線到網路,那麼在編寫配置資訊時候就

Spring——定義Bean init Methoddestroy Method的三種方式

轉載自塗宗勳的部落格 在spring的實際開發過程中,我們可能常常需要使用到init method和destroy method,比如初始化一個物件(bean)後立即初始化(載入)一些資料,在銷燬一個物件之前進行垃圾回收等等。 根據特意的去了解後,發現實際上可以有三種方式來實現init

Mybatisif標籤的整型判斷問題

用mybatis進行資料修改的時候,age屬性沒有賦值,但是我使用update的時候age這個屬性也被修改了。age屬性是一個int型別。 <set>           &

Mybatis之mapper配置檔案之方法標籤的引數獲取

Mybatis框架中,Mapper檔案引數獲取一般有以下幾種: 1、引數個數為1個(string或者int)   dao層方法為以下兩種: /** * 單個int型 */ public List<UserComment&g

mybatis的mapper.xmlselect標籤的parameterType屬性

SqlSession的selectList()與selcetOne()的第二個引數和selectMap()的第三個引數都表示方法的引數 程式碼如下 Flower flower = session.selectOne("com.bjsxt.mapper.Flowe

vue一個標籤含有多個class(其中包含三元表示式)的寫法

1、陣列形式 <div :class='["classify",current=="0" ? "active" : ""]' @click='current=0'>課程</div> 注意:陣列中的classify如果不加引號的話,代表的是data中的一項,並不是類名

htmlfor屬性的作用 -------- for屬性一般出現在html標籤

for 使用者表單的標籤上,屬性值為需要關聯的輸入框id。 <input text="radio" name="gender" id="gender_1" value="男" /><label for="gender_1">男</label> <input

DOM與jQueryimg標籤的src

     今天,在做一個驗證碼的時候,出現了一個問題。 驗證碼:<input type="text" name="icode"><a href="javascript:voi

爬蟲技術 -- 進階學習(十一)【補充】獲取htmlmeta標籤的content的內容

但是meta標籤中的content內容的抓取,沒有提及到! 上網搜尋了下,發現很少提及,所以寫篇隨筆,備忘一下! 還是在HtmlAgillityPack搭配ScrapySharp的環境下,具體如何配置點選上一篇連結。 例子:<meta name="keywords" content="召開新聞

視訊網站video標籤的視訊資源以blob:http呈現的探索

一、問題場景    想下載知乎視訊資源,卻發現視訊連結是這個樣子的blob:https://v.vzuu.com/b6146956-6e52-406d-8909-f3f1b81ae461當時一臉懵比啊 ~難道blob:https是什麼牛逼的新協議?於是進行了一番探索二、探尋結