zoukankan      html  css  js  c++  java
  • 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方法上面
  • 相关阅读:
    Jmeter以non-gui模式进行分布式测试
    使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等
    Docker ON MAC OS X -- 第三篇
    Docker ON MAC OS X -- 第二篇-了解镜像及容器
    MAC OS X上安装Docker
    Robotium 第一天,HelloWorld
    Maven中使用reportNG,并自定义reportNG output中的log
    Cesium应用篇--添加雨雪天气
    Cesium源码剖析---视频投影
    Cesium源码剖析---Ambient Occlusion(环境光遮蔽)
  • 原文地址:https://www.cnblogs.com/cengzhuquan/p/14606311.html
Copyright © 2011-2022 走看看