- 在Spring4之後,要使用註解開發,必須要保證aop的包匯入了
- 使用註解需要匯入context約束,增加註解的支援
通過一個小deemo解釋,結構如圖所示
applicationContext.xml配置資訊為
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!--指定要掃描的包,這個包下的註解就會生效-->
<context:component-scan base-package="com.hudu"/>
<context:annotation-config/>
<!-- <bean id="user" class="com.com.hudu.pojo.User">-->
<!-- <property name="name" value="hudu"/>-->
<!-- </bean>-->
</beans>
使用註解開發,實體類配置如下所示
//等價於<bean id="user" class="com.com.hudu.pojo.User"/>
//@Component 元件
@Component
@Scope("singleton")
public class User {
//相當於<property name="name" value="hudu"/>,或者再set方法上
@Value("hudu")
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
測試類
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = context.getBean("user", User.class);
System.out.println(user.name);
}
@Autowired:自動裝配型別,名字。如果Autowried不能唯一自動裝配上屬性,則需要通過@Qualifier(value="xxx")
@Nullable:欄位標記了這個註解,說明這個欄位可以為null
@Resource:自動裝配,通過名字,再通過型別
@Component:元件,放在型別,說明這個類被Spring管理了,就是bean。下面是Component的衍生註解,我們再我們在web開發中,會按照mvc三層架構分層!
dao:@Repository
service:@Service
controller:@Controller 這四個註解功能一樣,都是代表將某個類註冊到Spring中,裝配bean
小結
xml與註解:
- xml更加萬能,適用於任何場合!維護簡單方便
- 註解:不是自己的類使用不了,維護相對複雜
xml與註解的最佳實踐:
- xml用來管理bean
- 註解只負責完成屬性的注入
- 我們在使用的過程中只需要注意一個問題,必須讓註解生效,就需要開啟註解的支援
<!--指定要掃描的包,這個包下的註解就會生效-->
<context:component-scan base-package="com.hudu"/>
<context:annotation-config/>
本作品採用《CC 協議》,轉載必須註明作者和本文連結