spring_02注解 和插件配置以及与juint整合

使用注解配置spring

  1. 导包

    (4+2+spring-aop)
    在新版本中需要srping-aop包,注解才能够使用

  2. 为主配置文件引入context命名空间(约束)

    xmlns:context="http://www.springframework.org/schema/context"

  3. 开启使用注解代理配置文件

    <!-- 指定扫描org.spring包下的所有类中的注解
    注意:会扫描org.spring包下的所有子孙包和文件-->
    <context:component-scan base-package="org.spring"></context:component-scan>
    
  4. 在类中使用注解完成配置

    例:

     import org.springframework.stereotype.Component;
    
     //<bean name="user" class="org.spring.domain.User"></bean>
    
     @Component("user")
    
     public class User {
    
     }
    
  5. 将对象注册到容器

     @Component	
    
     @Service	//service层
    
     @Controller	//web层
    
     @Repository	//dao层
    
     说明:这4个注解的作用完全相同 名称不同用于区别每一层的对象
    
  6. 修改对象的作用范围

     @Scope(scopeName="protorype")
    
  7. 值类型注入

     @Value("Tom")
    
         @Value("Tom")
         private String name;
         //通过反射的Field赋值,比较直观,但是破坏了封装性
    
         或
    
         @Value("Tom")
         public void setName(String name) {
     	    this.name = name;
         }
     	    //通过set方法赋值,推荐使用
    
  8. 引用类型注入

    (1)

     @Autowired //自动装配
     private Car car;
     需要:
     @Component
     public class Car{ }
         //问题:如果匹配多个类型一致的对象,将无法选择具体注入哪一个对象, so:
    

    (2)

     @Autowired
     @Qualifier("car2")
     private Car car;
    

    (3)

     @Resource(name="car2") //手动注入,指定注入那个名称的注入
         private Car car;
    
  9. 初始化|销毁方法

     @PostConstruct //在对象创建后调用 init-method
     public void init(){
         System.out.println("初始化方法");
     }
     @PreDestroy //在销毁之前调用 destroy-method
     public void destory(){
         System.out.println("销毁方法");
     }
    

spring插件

  1. 安装springsource-tool-suite(sts)插件

  2. 使用spring安装好插件的Eclipse

spring与juint测试整合

  • 目的:为了简化测试
  1. 导包

    (4+2)+ srping-aop + spring-test

  2. 使用:

     //帮我们创建容器
     @RunWith(SpringJUnit4ClassRunner.class)
     //指定创建容器时使用哪个配置文件
     @ContextConfiguration("classpath:applicationContext.xml")
     public class TestUser {
         //将名为user的对象注入到变量u中
         @Resource(name="user")
         private User u;
    
         @Test
         public void Test(){
     	    System.out.println(u);
         }
    
     }
    
posted @ 2018-01-15 12:13  厨房有只偷吃的猫  阅读(305)  评论(0编辑  收藏  举报