Spring基礎,註解開發,JavaConfig實現配置(Spring4新特性)
一,註解開發
前言:在Spring4之後,要使用註解開發,必須保證aop的包匯入,(這個包在spring-webmvc裡)
使用註解需要匯入context約束,增加註解支援
1,bean
2,屬性如何注入
//等價於 <bean id="user" class="com.king.pojo.User"/> @Component public class User { //@Value("king") private String name; public String getName() { return name; } @Value("king") public void setName(String name) { this.name = name; } }
3,衍生的註解
@Component有幾個衍生註解,在Web開發中,會按照mvc三層架構分層
dao【@Repository】
service 【@Service】
controller【Controller】
功能都是一樣的,代表將某個類 註冊到Spring中,裝配Bean
4,自動裝配
@Autowired:放在屬性上,自動裝配 預設通過型別,後名字
如果Autowired不能唯一自動裝配屬性,則需同通過@Qualifier(value="xxx")
@Nullable:放在屬性上,標記了這個註解,說明這個註解可以為null
@Rescource:放在屬性上,自動裝配預設通過名字,後型別
5,作用域
@Scope(String name);
6,小結
xml與註解區別:
xml,更加萬能,適用於任何場合!維護簡單方便
註解,不是自己的類使用不了,維護相對複雜!
最佳實踐:
xml用來管理bean
註解只負責完成屬性注入(xml註冊bean,註解注入屬性,目前企業開發常用)
<!--指定要掃描的包,這個包下的註解就會生效--> <context:component-scan base-package="com.king"/> <context:annotation-config/>
二,JavaConfig實現配置
現在完全不需要使用Spring的XML配置了,全權交給Java來做!
JavaConfig是Spring的一個子專案,在Spring4之後,它成為一個核心功能
@Configuration,作用在類上,裡面也是被@Component封裝的,被Spring容器託管
代表一個配置類,(相當於beans.xml)
@Component,相當於bean
//定義當前類為配置類,相當於applicationContext.xml @Configuration //指定註解生效範圍 @ComponentScan("com.king.pojo") //將其它配置類引入 @Import(KingConfig2.class) public class KingConfig { //相當於bean標籤 @Bean public User getUser(){ return new User(); } }