zoukankan      html  css  js  c++  java
  • spring02

    一、使用注解代替xml的bean配置

      1、

      (1)类对象的定义配置:

        我们先来看一张图:

      

      在spring01中,我们是使用xml中的:

        <bean  name="user"  class="">  

          <property  name="age"  value="18"></property>

        </bean>

      那么,使用注解之后,对照上图,定义对象:

        用@Component("user")以及他的衍生类:(使用注解时,如果注解里只有一个属性,且是value的话,属性名value可以省略)

        @Controller(web层);

        @Service(业务层);

        @Repository(持久层,dao层);

      比如下列例子,就相当于<bean  name="user"  class=""></bean>的xml配置:

        @Controller("user")

        class  User{

          private  String  name;

        }

      衍生类主要是为了让被标注类本身的用途清晰,这4个注解目前的功能是一致的,spring后续会对衍生类注解的功能进行增强。

      这些配置类都写在Bean包下的类里,如User类;

      (2)修改对象的作用范围(scope属性配置)

        如:在类上加注解:@Scope(scopeName=“prototype”)

      2、属性的注入

      上边介绍了对象的定义这个配置,主要使用4个注解(包含衍生类),注解加在类上,比如User类上:@Controller("user"),user就是用xml配置时的name,class中的name;

      下面,介绍属性的注入,即类对象的依赖属性(字段):比如:

      (1)值类型的注入  

        第一种:直接加在属性上,这种方式是通过反射的Field赋值,但是破坏了封装性的原则(直接在私有属性上加)

          @Value(“张三”)

          private String name;   即给name赋值“张三”

        第二种:加在set方法上,通过set方法赋值,推荐使用

          @Value(“张三”)

          public  void  setName(String  name){

            this.name=name;

          }

      (2)引用类型的注入

        比如:

          @Component("user")

          class  User{

            @Value(“张三”)

            private  String  name;

            @Autowired//自动装配  或者  @Resource(name=“car”)

            private  Car  car;//当然这里这个对象,也要在容器中配置;

          }

        注:@Autowired和@Resource的区别:

        @Autowired 自动装配(没有参数),会根据被标注的引用类型属性(对象)的类型,自动在spring容器中找到符合该类型的对象,并赋值给当前的引用变量,但是只适用于该引用类型的对象只有一个的时候,如果容器中有多个符合该类型(被注解标注的)的对象,那么就需要再加上一个注解:@Qualifier(“car”),组合使用,从而确定到底引用的是哪一个对象;

        @Resource(name="car")手动注入,指定要注入哪个对象

      (3)初始化/销毁方法的注入

        

    二、spring与junit整合测试

        

    三、结论

        

  • 相关阅读:
    swap文件查看
    内核调试神器SystemTap 转摘
    RPM软件包管理的查询功能 转
    systemtap跟踪C
    mysql 阿里内核人员
    systemtap 调试postgrel
    数据库大会
    solaris 软件包地址
    java实现大文件上传方案
    java实现大文件上传技术
  • 原文地址:https://www.cnblogs.com/limuma/p/8462702.html
Copyright © 2011-2022 走看看