wait、notify和notifyAll方法 wait() 方法會使該鎖資源釋放,然後線程進入等待WAITING狀態,進入鎖的waitset中,然後等待其他線程對鎖資源調用notify方法或notifyAll方法進行喚醒,否則就會進入無限等待。喚醒後會繼續執行wait() 後面的代碼。 wait( ...
轉自:http://www.java265.com/JavaFramework/Spring/202205/3263.html
如果你將類交給Spring容器管理,但是需要Spring幫你運行初始化方法
此時我們可以藉助InitializingBean介面實現初始化方法的效果
InitializingBean介面的原理:
Spring實例化一個類後,會調用類中的afterPropertiesSet方法,達到初始化初始化方法的目的
下文筆者講述Spring中InitializingBean介面的功能簡介說明,如下所示
InitializingBean介面的功能
InitializingBean介面 為bean提供了初始化方法的方式 這個介面中只包括afterPropertiesSet方法 凡是繼承該介面的類 在初始化bean的時,都會運行afterPropertiesSet方法
import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Service; public class InitBean implements InitializingBean{ public void afterPropertiesSet() throws Exception { System.out.println("啟動時自動執行 afterPropertiesSet..."); } public void init(){ System.out.println("init method..."); } } ---配置文件----- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd" default-lazy-init="true"> <bean id="initBean" class="com.java265.InitBean" init-method="init"> </bean> </beans> ---main程式---- import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext("classpath:/applicationContext-core.xml"); context.getBean("initBean"); } } -----運行以上代碼,將輸出以下信息--------- 啟動時自動執行 afterPropertiesSet... init method...