spring的注解使用

1.注解测试
在xml里面配置
<context:component-scan base-package="cn.ql"></component-scan>
component-scan:指定Spring扫描的包,例如你在里面配置的是cn.ql,那么spring会扫描cn.ql.xxx的所有的包
base-package:配置包名(扫描这个包以及这个包里面所有的子包)

第一组注解:(用来创建对象交给spring管理)
@component
    这个里面的value属性给这个类指定唯一的名字如果不指定那么默认就是当前类的名字
@component:这个适合用于所有的类
@controller:适合用于web层,当然用在别个层也是可以的,只不过spring给你提供的都是见名知意的效果
那么我们就尽量也用到见名知意的效果
里面的value属性,也是指定当前类的唯一,如果不写那么默认是当前类的名称
@service:用于service层
里面的value属性跟上面是一样的效果的
@repository:用于dao层
value:跟上面的效果都是一样的



第二组注解,(自动注入对象)
他是替代了xml里面的<property>
    <set></set>
    <list></list>
    <array></array>
    <map></map;
    <props>
        <prop></prop>
    </props>
</property>
中的这几个标签
@Autowired
1.按照接口类型自动注入
2.如果有多个实现类,再按照属性名的id从spring容器里面去找
@Qualifier 配置到属性
按照的指定的id从容器里面找,他可以指定id的名字
@Autowired 和 @Qualifier 配合使用
    查找对象
    1.按照接口的类型去找
    2.按照@qualifier指定的名称去找
    @Resource : jdk提供的注解(按照指定的bean的id从容器里面去寻找)
    里面的name赋值必须是唯一的,他相当于id
    注意:使用注解的注入方式不需要提供set方法
    @value:可以给私有属性赋值,但这种方式用的比较少,因为如果用value赋值的话太麻烦还不如我们直接username=xxx这样赋值方便呢
    但是他还有个功能就是可以读取配置文件里面的内容
    
    配置文件里面有个
    jdbc.username=root
    难么我们就可以这样配置
    
    @value("${jdbc.username}"):这样就可以了,使用的是Spring_el表达式
    private String username;
    但是使用这个的前提条件是配置文件必须的在配置文件xml里面配置交给spring管理
                    <bean id="propertySource" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
                        <property name="location" value="classpath:jdbc.properties"></property>
                    </bean>
                    
                    
3:第三组注解是声明对象的生命周期的:
@scope:指定对象的作用域
singleton:单列默认就是单列的
prototype:多列(struts2的动作类交给spring管理的时候必须的使用多列)
request:基本不用
session:基本不用@postConstruct:指定初始化方法
@preDestroy:指定销毁的方法(销毁的方法:只能是在单列的情况下使用)

spring3之后提供了一套全新的注解,使用这套注解完全替换xml里面的配置

第四 纯注解的配置方式
使用这些注解主要是用来配置spring的
@configuration:定义到类上:声明此类是一个配置类
@componentScan:指定扫描的包(开启对注解的支持)
    basepackages:指定扫描的包@ComponentScan里面的一个属性(里面写的是指定扫描的包和这个包的所有子包)
    使用注解的方式进行配置的时候:
        1.我们自己写的代码交给spring管理的时候,需要在类上使用@component @controller等注解来做
        2.外部jar包提供的类,我们就需要使用@Bean配置到方法,交给spring管理
        
        @Bean:定义到方法上
        2.用@Bean配置的方法这个方法的返回值会交给spring管理的.
        name:bean的唯一标示
        @Import:导入其他的配置类
            里面的value属性:配置其他类的字节码文件
第五:使用spring提供的测试环境进行junit单元测试
1.导入spring中对测试环境提供的jar包:spring-test.jar
2.在测试类上使用注解的形式配置单元测试环境
@RunWith(SpringJunit4ClassRunner.class):指定单元测试的运行环境
@ContextConfiguration:
里面的两个属性分别用在xml配置文件上和注解
locations(String类型单位xml位置)            :针对的是xml配置方式
classes(配置类的字节码对象) :针对注解的配置方法
            
            单元测试类是不需要交给spring管理的,因为浪费资源

posted @ 2017-10-16 23:48  IT筱龙  阅读(374)  评论(0编辑  收藏  举报