使用注解代替XML配置文件
1、導包
spring-aop.jar
2、為主配置文件引入新的命名空間(約束)
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd ">
3、開啟使用注解代替配置文件
<!-- 指定掃描cn.x5456.domain包下的所有類中的注解. 注意:掃描包時.會掃描指定報下的所有子孫包 --> <context:component-scan base-package="cn.x5456.domain"></context:component-scan>
4、在類中使用注解完成配置
1)將對象注冊到容器
@Component("user") // 注冊當前類到容器中 @Scope(scopeName="singleton") // 指定對象是單例還是多例 public class User {
相當於Xml配置文件中的
<bean name="user" class="cn.x5456.domain.User" scope="singleton" />
單例與多例的區別
- singleton:單例(放在容器中)
- prototype:你用的時候初始化一個對象,交給你,他就不管了(不在容器中)
一下的三種注解與Component是相同的,只是代表不同的意思
@Service("user") // service層
@Controller("user") // web層
@Repository("user")// dao層
2)值類型注入
方法一:
方法二:
3)引用類型(對象)注入
如果字段中包含除8大基本類型以外的對象,則需要將那個對象也注冊到容器中。
1>注冊到容器中
2>將Car對象裝配到User中的字段中
方法一:
方法二:
4)初始化與銷毀方法
相當於
<bean name="user" class="cn.x5456.domain.User" init-method="init" destroy-method="destory"></bean>
Spring中整合的JUnit
1、導包
4+2+aop+test
2、配置生成容器的注解

1 // Spring人性化,不忍心看我們在每個方法中都獲取容器,所以它幫我們做了這一步 2 @RunWith(SpringJUnit4ClassRunner.class) // 創建容器 3 @ContextConfiguration("classpath:spring-config.xml") // 通過類加載形式,讀取配置文件,創建對象 4 public class HelloSpring { 5 6 @Resource(name="user") // (從容器中取出user對象)注入 7 private User user; 8 9 @Test 10 public void func(){ 11 // 獲取容器 12 // ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml"); 13 // 取出user對象 14 // User user = (User) ac.getBean("user"); 15 16 System.out.println(user); 17 } 18 }