springDI注解

通过spring的注解完成java对象的创建,属性,代替xml文件
实现步骤:
1.加入依赖
2.创建类,在类中加入注解
3.创建spring的配置文件
声明组件扫描标签指明注解在你项目中的位置
4.使用注解创建对象,创建容器ApplicationContext

语法:组件扫描器:component-scan,组件就是java对象 base-package:指定注解在你项目中的包名
工作方式把包中和子包所有的类进行扫描,找到类的注解,按照注解的功能创建对象,或给对象赋值
例如: <context:component-scan base-package="包名"/>
注解:

  @Component   创建对象的,等同于<bean></bean>的功能  属性:value 就是对象的名字,也就是bean的id值,
                     value的值是唯一的,创建的对象在整个spring容器中就一个 且位置在 在类的上面
  @Component(value = "myStudent")   等同于   <bean id="myStudent" class="ba01.Student"/> 调用无参构造
   @Repository(持久层类的上面):放在dao的实现类上面,表示创建dao对象,dao对象是能访问数据库的
   @Service(用在业务层的上面):放在service的实现类上面,创建service对象,service对象是做业务处理的,可以有事务等功能的
   @Controller(用在控制器的上面):放在控制器类的上面,创建控制器对象的,控制器对象,能接受用户提交参数,显示请求的处理结果
   以上三个处理语法都一样,都能够创建对象。但是具有额外功能 ,可以给项目对象进行分层

        @Value():简单类型的属性赋值
               属性:value 是String类型的,表示简单的属性值
               位置:1.在属性定义的商上面,无需set方法,推荐使用
                    2.在set方法的上面


       引用类型注解:
        @Autowired:spring框架提供的注解,实现引用类型的赋值
            spring中通过注解给引用类型赋值,使用的是自动注入原理 ,支持byName,byType
        属性:required,是一个boolean类型的,默认true
                         required=true:表示引用类型赋值失败,程序报错,并且终止执行
                       required=false:引用类型如果赋值失败,程序正常执行,引用类型为null
        @Autowired:默认使用byType自动注入
           位置:1)在属性定义上面,无需set方法,推荐使用
               2)在set方法上面
          如果要使用byName方式,需要做到的是:
               1.在属性上面加入@Autowired
               2.在属性上面加入@Qualifier(value="bean 的id"),表示使用指定名称的bean完成赋值
      @Resource:来自jdk中的注解,spring框架提供了对这个注解的支持,可以使用它给引用类型赋值。使用的也是自动注入原理,支持 byName byType,默认为byName
      当byName  失败时执行byType
                     位置:1.在属性定义上面,无需set方法,推荐使用
                           2.在set方法上面
posted @ 2021-04-01 14:50  无敌臭弟弟  阅读(98)  评论(0编辑  收藏  举报