Bean配置(註解)【瞭解】【操作】

1.配置Bean使用@Component註解

如需爲Bean定義名稱,在參數中添加Bean名稱@Component("beanName")

2.設定Spring的自動掃描路徑,用於檢測對應的Bean是否配置了註解,並加載配置了註解的類 a)開啓context空間的支持

<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"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

">

b)開啓自動掃描功能,並指定掃描的路徑

<context:component-scan base-package="cn.itcast.annotation"></context:component-scan> 說明:掃描路徑可以設置多個,中間使用,隔開,掃描路徑包含指定包和子包內所有的類

3.Spring提供了3個註解開發Bean的兼容格式,用於後期分層設計擴展

@Repository 用於數據層實現類標註

@Service 用於業務邏輯層實現類標註

@Controller 用於控制層實現類進行標註

4.爲Bean注入簡單類型屬性

a)在屬性名上方聲明該屬性自動裝配@Autowired

b)在屬性名上方聲明該屬性注入的值@Value(value)

@Autowired

@Value("itcast")

private String msg;

注意:註解自動裝配屬性值無需提供對應屬性的setter方法

5.爲Bean注入引用類型屬性

a)在屬性名上方聲明該屬性自動裝配@Autowired

b)在屬性名上方聲明該屬性注入的值@Qualifier(bean引用名稱)

@Autowired

@Qualifier("anno2")

private AnnotationOther other;

注意:被注入的Bean一定要存在,無需提供對應屬性的setter方法

6.@Autowired註解屬性required用於聲明自動裝配的數據是否是必須的

如果required=true,必須爲其裝配數據,如果沒有值,拋出異常

如果required=false,自動裝配數據失敗,則注入值爲null

7.Spring支持JSR-250規範提供的@Resource註解的支持

格式一:@Resource(name="myImpl")

格式二:@Autowired(required=false)

@Qualifier("myImpl")

以上兩種格式效果相同

8.Bean聲明週期註解 @PostConstruct 功能:爲當前Bean指定init-method參數 格式:定義在成員方法的上方,兼容靜態方法 @PreDestroy 功能:爲當前Bean指定destory-method參數 格式:定義在成員方法的上方,兼容靜態方法 注意:要求當前類被註冊爲Bean,否則無效果 9.Bean作用域註解 在類的定義上方添加@Scope指定Bean的作用域 常用:@Scope("prototype") 默認:@Scope("singleton") 10.Spring3.0註解支持 @Configuration配置當前類爲配置類,用於加載其中配置的Bean,與靜態工廠初始化Bean很相似 @Bean(name="b1")將配置類中的某個方法的返回值聲明爲Bean,該方法必須返回一個對象 @Configuration //設定該類參與自動掃描 public class MyBeanFactory { @Bean(name={"aa","bb","cc"}) //設定該方法的返回值是一個Bean public static BookService getInst(){ return new BookService(); } } 以上操作必須基於自動掃描功能,如不開啓自動掃描,Spring將無法查找到對應的註解配置 11.可以不使用自動掃描使用Bean AnnotationConfigApplicationContext對象可以手工加載基於註解配置的Bean //用於手工添加註解開發Bean的上下文對象 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); //加載配置管理類 ctx.register(MyConfiguration.class); //刷新上下文對象 ctx.refresh(); 注意:註冊完成後一定要進行刷新,否則加載的Bean將無法被使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章