基於註解配置Spring入門編程
爲何要使用註解配置代替XML配置文件呢?框架
答:由於XML配置文件,非編程語言語法,因此沒法調試。而使用註解配置的代碼,更加容易定位編程語言
問題ui
註解配置步驟:spa
1.導入包(注意:基於註解的配置中,咱們要多拷貝一個aop的jar包)調試
2.在類的根路徑建立一個XML配置文件,寫一個組件解釋器component
<context:component-scan base-package=""></context:commponnent-scan>對象
3.建立一個自定義類加上@Controller生命週期
Spring經常使用註解說明原型
1.用於對象的註解,咱們將用於被掃描建立對象的註解,統稱爲組件註解(聲明在類上)
組件註解包括:
@Component 用於聲明三層之外的組件註解
@Controler 用於聲明表示層的組件註解
@Service 用於聲明服務層的組件註解
@Repository 用於聲明持久層的組件註解
注:這四個組件註解功能上沒有任何區別,只是概念上不同
組件註解有什麼功能呢?
用來表示類爲註解的組件類,啓動Spring框架的程序時,聲明將這些組件類的對象注入到Spring容器裏面。
2.用於依賴注入的註解
@Autowired
做用:用於給引入注入容器的對象
屬性:required:指定注入的對象是否容許爲空,若是required=true。表示不能夠爲空
使用@Autowired的三種狀況
a.在屬性上面注入
b.在方法上注入
c.在構造方法上注入,注:若是構造方法加入@Autowired,Spring框架會自動匹配容器中是否有對應參數類
的對象,將對象賦予構造方法的參數。若是要使用@Autowired給構造方法注入對象,該構造方法必需要
有參數
@Qualifier
做用:用於指定注入的對象使用@Autowired注入對象時,由於@Autowired沒有指定對象名的參數,只能通
過@Qualifier字段容器中對象名
屬性:
value:指定注入Spring容器中對應對象名的對象給引用
@Resource註解功能等同於@Autowired+@Qualifier
注:@Resource只能注入方法和屬性,不能注入構造方法
@Value註解
做用:只能設置標量類型(基礎數據類型+包裝類+String)
3.聲明週期
@Scope:用於指定建立的對象的生命週期,是單例、原型
注:若是Scope若是放在方法上,必需要和@Bean註解結合使用
@PostConstruct:指定初始化方法
@PreDestory:用於指定容器銷燬以前執行的方法
純註解的支持(替換配置文件)
@Configuration:聲明該類是一個配置類
@ComponentScan:掃描組件類建立對象到容器中
@PropertyScource:對Properties文件的支持!!!
@Bean:做用就是將非組件類的對象加入到Spring容器