spring学习笔记05-IOC常用注解(二)
文章目錄
- 2.3 關于 Spring 注解和 XML 的選擇問題
- 2.4spring 管理對象細節
- 2.5spring 的純注解配置
- 2.5.1 待改造的問題
- 2.5.2 新注解說明
- 2.5.2.1 @Configuration
- 2.5.2.2 @ComponentScan
- 2.5.2.3 @Bean
- 2.5.2.4 @PropertySource
- 2.5.2.5 @Import
- 2.5.2.6 通過注解獲取容器:
2.3 關于 Spring 注解和 XML 的選擇問題
注解的優勢:
配置簡單,維護方便(我們找到類,就相當于找到了對應的配置)。
XML 的優勢:
修改時,不用改源碼。不涉及重新編譯和部署。
Spring 管理 Bean 方式的比較:
2.4spring 管理對象細節
基于注解的 spring IoC 配置中,bean 對象的特點和基于 XML 配置是一模一樣的。
2.5spring 的純注解配置
寫到此處,基于注解的 IoC 配置已經完成,但是大家都發現了一個問題:我們依然離不開 spring 的 xml 配
置文件,那么能不能不寫這個 bean.xml,所有配置都用注解來實現呢?
當然,同學們也需要注意一下,我們選擇哪種配置的原則是簡化開發和配置方便,而非追求某種技術。
2.5.1 待改造的問題
我們發現,之所以我們現在離不開 xml 配置文件,是因為我們有一句很關鍵的配置:
<context:component-scan base-package=“com.itheima”></context:component-scan>
如果他要也能用注解配置,那么我們就離脫離 xml 文件又進了一步。 另外,數據源和 JdbcTemplate 的配置也需要靠注解來實現。
2.5.2 新注解說明
2.5.2.1 @Configuration
作用:
??用于指定當前類是一個 spring 配置類,當創建容器時會從該類上加載注解。獲取容器時需要使用
??AnnotationApplicationContext(有@Configuration 注解的類.class)。
屬性:
??value:用于指定配置類的字節碼
示例代碼:
@Configuration public class SpringConfiguration { }注意:
??我們已經把配置文件用類來代替了,但是如何配置創建容器時要掃描的包呢?
請看下一個注解。
2.5.2.2 @ComponentScan
作用:
??用于指定 spring 在初始化容器時要掃描的包。作用和在 spring 的 xml 配置文件中的:<context:component-scan base-package=“com.itheima”/>是一樣的。
屬性:
??basePackages:用于指定要掃描的包。和該注解中的 value 屬性作用一樣。
示例代碼:
注意:
??我們已經配置好了要掃描的包,但是數據源和 JdbcTemplate 對象如何從配置文件中移除呢?
請看下一個注解。
2.5.2.3 @Bean
作用:
??該注解只能寫在方法上,表明使用此方法創建一個對象,并且放入 spring 容器。
屬性:
??name:給當前@Bean 注解方法創建的對象指定一個名稱(即 bean 的 id)。
2.5.2.4 @PropertySource
作用:
??用于加載.properties 文件中的配置。例如我們配置數據源時,可以把連接數據庫的信息寫到
??properties 配置文件中,就可以使用此注解指定 properties 配置文件的位置。
屬性:
??value[]:用于指定 properties 文件位置。如果是在類路徑下,需要寫上 classpath
jdbc.properties 文件:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/day44_ee247_spring jdbc.username=root jdbc.password=1234注意:
??此時我們已經有了兩個配置類,但是他們還沒有關系。如何建立他們的關系呢?
請看下一個注解。
2.5.2.5 @Import
作用:
??用于導入其他配置類,在引入其他配置類時,可以不用再寫@Configuration 注解。當然,寫上也沒問題。
屬性:
??value[]:用于指定其他配置類的字節碼。
示例代碼:
注意:
??我們已經把要配置的都配置好了,但是新的問題產生了,由于沒有配置文件了,如何獲取容器呢?
請看下一小節。
2.5.2.6 通過注解獲取容器:
??ps:當注解類是AnnotationConfigApplicationContext 的參數時,該注解類上的@Configuration可以省略
ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class);總結
以上是生活随笔為你收集整理的spring学习笔记05-IOC常用注解(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习——默认构造函数
- 下一篇: JDBC-01-快速入门