Spring學習筆記(二)-IOC基於註解
阿新 • • 發佈:2020-12-09
Spring學習筆記(二)-IOC基於註解
Spring配置檔案配置
-
配置元件掃描器
-
<context:component-scan base-package="com.Xxx"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
-
掃描com.Xxx下的所有註解但是不包括Controller註解
-
掃描多個包:
-
配置多個元件掃描器
-
使用分隔符,分號或者逗號(;or,)
-
<context:component-scan base-package="com.Xxx.Xxx;com.Xxx.Xxx"/>
-
指定父包
-
Component
-
放置於類上,將該類放入容器
-
value即對應於id,在沒有設定value時,預設給予的名稱為類名首字母小寫
-
@Repository:dao介面的註解
-
@Controller:controller控制器的註解
-
@Service:業務層的註解
-
本質都為@Component,只是別名,便於分類標記
-
屬性賦值:
-
簡單型別:
-
@Value,放置於屬性定義(不需要set方法)或set方法上
-
讀取外部屬性配置檔案
-
<context:property-placeholder location="classpath:JdbcDataSourceConfig.properties"/>
-
此時@Value中的值可以設定為外部檔案中的資料:${"key"},相似於EL表示式
-
-
引用型別:
- @Autowired:由Spring提供的自動注入,預設為byType也支援byName,可以放置於屬性(不需要set方法)或set方法上
- required屬性:預設為true,Spring此時會在啟動建立容器時就檢查是否注入成功,失敗時會終止程式,報錯。設定為false時即使自動注入失敗也會正常秩序程式,此時引用型別的值為null
- @Qualifer:從容器中尋找指定名稱的物件,需要配合@Autowired使用
- @Resource:JDK提供,在不提供引數時。預設採用byName方式注入,在byName注入不成功時byType,位置為屬性或set方法上,jdk1.8以上版本沒有該註解,配置name屬性時只使用byName方式注入
- @Autowired:由Spring提供的自動注入,預設為byType也支援byName,可以放置於屬性(不需要set方法)或set方法上
-