Spring學習筆記_初識Bean(上)
0x01 Bean的配置項
Id bean 的唯一標識
Class bean 所對應類的位置
Scope bean 的作用域
Constructor arguments 構造注入
Properties 設值注入
Autowiring mode 自動裝配
lazy-initialization mode 懶載入
Initialization/destruction method 初始化/銷毀
0x02 Bean的作用域(scope)
singleton:單例,一個Bean容器中只存在一個實例(default)
prototype:每次請求創建新的實例,destory方式不生效
request:每次http請求創建一個實例且僅在當前request內有效
session:同上,每次HTTP請求創建,當前session內有效
global session:基於protlet的web中有效(protlet定義了global session),如果是在web中,同session
<bean id="beanscope" class="com.test.java.BeanScope.BeanScope" scope="prototype"></bean>
0x03Bean的生命周期
- 初始化 :實現org.springframework.beans.factory.InitializingBean介面,覆蓋afterPropertiesSet方法;配置init-method
- 銷毀:實現import org.springframework.beans.factory.DisposableBean介面,覆蓋destroy()方法;配置destroy-method
- 配置全局默認初始化銷毀方法:default-init-method default-destroy-method
- 注意:默認是介面>method>default全局;全局可以在xml中聲明了不配置,而method不行。
0x04 Aware
- Spring中提供了一些以Aware結尾的介面,實現了Aware介面的bean在被初始化之後,可以獲取相應資源
- 通過Aware介面可以對Spring資源進行操作
- 為對Spring進行簡單的擴展提供了方便的入口
0x05 Bean的自動裝配(Autowiring)
- No:不做任何操作
- byName:根據屬性名自動裝配(id),默認進行設值注入
- byType:根據bean的類型進行設值注入,跟id無關
- construct:根據構造器中的參數bean類型進行構造注入,跟id無關
0x06 Resources
針對資源文件的統一介面
UrlResource:URL對應的資源,根據一個URL地址即可構建
ClassPathResource:獲取類路徑下的資源文件
FileSystemResource:獲取文件系統裡面的資源
ServletContextResouce:ServletContext封裝的資源,用於訪問ServletContext下的資源
InputStreamResource:真多於輸入流封裝的資源
ByteArrayResource:針對於位元組數組封裝的資源
//Spring通過ResourceLoader來載入資源文件public class iResource implements ApplicationContextAware {private ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext=applicationContext;}public void resource() throws IOException {Resource resource = applicationContext.getResource("classpath:test.txt");Resource resource1 = applicationContext.getResource("file:D:\biyeshejia\onetime9901\src\test.txt");Resource resource2 = applicationContext.getResource("url:https://www.ibm.com/developerworks/cn/java/j-lo-spring-resource/index.html");System.out.println(resource.contentLength());System.out.println(resource.getFilename());System.out.println(resource1.getFilename());System.out.println(resource2.getFilename());}}
參考:Spring Bean裝配之Bean的配置項及作用域,Spring入門篇教程-慕課網
推薦閱讀:
※Guess by Marciano Spring Summer 2014
※Campaign | Zara TRF Spring/Summer
※Spring MVC框架的通俗理解
※Spring RestTemplate作為負載平衡器客戶端
TAG:Spring |