javascript
Spring半注解半Xml
一、 @Component
1.Component
標記了注解, 默認的名稱是:簡單類名,首字母小寫UserDaoImpl -> userDaoImplUserServiceImpl -> userServiceImplComponent可以使用value屬性指定對象的名稱,相當bean標簽的id屬性 Component注解有三個子注解(注意:Component注解和三個子注解作用一致)@Service: 業務層@Controller : 表現層@Repository: 持久層
Component可以使用value屬性指定對象的名稱,相當bean標簽的id屬性
測試類中
開啟注入掃描, 指定掃描的包, 掃描 Component注解
base-package: 指定掃描的包, 掃描com.itheima 包及其子包
如果將數據源和注入分開 context 必須寫在主中
2.Autowired: 自動裝配
@Autowired: 自動裝配
* 可以直接把容器中的對象注入到另外一個對象中
* 如果該接口有多個實現類, 需要指定對象的名稱,如果不指定,會報錯
*
* 如果沒有指定名稱,有多個實現類,根據屬性名稱在容器中查找
- @Qualifier(“userDaoImpl2”): 可以指定對象在容器中的名稱
- 該注解必須結合Autowired進行使用
- @Resource: 自動裝配 --可以使用name屬性指定對象在容器中的名稱
- @Autowired 和@Resource
- 都是自動裝配
- Autowired, 默認按照類型裝配,如果類型有多個,則按照名稱查找, 由spring提供
- @Resource:默認是按照名稱裝配,如果名稱沒有找到,則按照類型裝配, 有Jdk提供
注解總結
a. Bean: 標記在方法上,作用:將方法返回值放到springIOC容器中,可以使用value屬性指定對象的名稱
該注解適合創建 引用(其他)類對象
與xml映射:
b. Value: 標記在屬性上,作用:給簡單類型的屬性賦值
相當于xml的 value屬性
c. 【重點】Component: 標記在類上,作用:創建該類的對象,放到springIOC容器中,可以使用value屬性指定對象的名稱
該注解適合創建自定義的類對象
子注解:@Service(用于業務層) @Repository(用于持久層), @Controller(用于表現層)的作用與@Component 一樣
d. 【重點】Autowired: 標記在屬性和set方法上, 可以沒有set方法,作用:自動注入依賴的對象
Qualifier:標記在屬性和set方法上, 作用:指定依賴對象的名稱
e. Resource: 標記在屬性和set方法上, 可以沒有set方法,作用:自動注入依賴的對象
可以使用name屬性指定依賴對象的名稱
f. Autowired 和Resource對比
兩個都是自動注入(自動裝配)
Autowired:默認按照類型裝配,如果類型有多個,按照指定的名稱裝配, 由spring提供
Resource: 默認按照指定的名稱裝配,如果沒有找到名稱,按照類型裝配, 由jdk提供
g. @Import: 標記在配置類上,作用引入其他的配置文件(xml)
【重點】
h. @PropertySource :標記在類上,作用引入屬性文件(properties)
【重點】xml 映射:<context:property-placeholder location=“classpath:db.properties”></context:property-placeholder>
i. Configuration:標記在類上,作用 代表該類為配置文件
j. ComponentScan:標記在類上,作用 掃描包,創建對象
【重點】<context:component-scan base-package=“com.itheima”></context:component-scan>
l. Scope: 指定對象的范圍
m: 與生命周期相同的注解
@PostConstruct:對象初始化執行的方法
@PreDestory:對象銷毀時執行的方法
總結
以上是生活随笔為你收集整理的Spring半注解半Xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea配置Maven的本地仓库(打开新
- 下一篇: Spring和Junit整合