Annotation注解方式

         现在随着项目中Bean的增多,导致了XML配置越来越臃肿,很不便于维护,但Annotation却能很好的处理这类问题,甚至可以达到“零配置”。

         到底是什么有这么大的功能呢,难道就是程序中那那几句标志吗?当然可想而知的不是,其实是在幕后默默无闻地进行注释处理的Annotation处理器,程序中的Annotation注释仅仅是一个标志,没有Annotation处理器,它一点作用也没有。

         Annotation处理器是基于JDK的反射实现,同时在Spring中已经定义了很多Annotation注释,其每个都对应这一个Annotation处理器,最终达到相应的处理效果。

 

         常用Annotation注解:

        1.@Autowired实现对Bean的属性变量,属性的Set方法及构造函数进行注解,其默认的注解方式为按Bean的类型,也就是说处理器会在Spring容器中寻找类型相同的Bean来装配,如果找到多个就会出现NoSuchBeanDefinitionException异常。如果在其中配合使用@Qualifier就会使其成为是按Bean实例名的方式来装配。

        2.@Resources,其相当于@Autowired,其默认是按实例名的方式注解的,在其中有两个比较重要的参数type和name,Spring将name属性解析为Bean的实例名,type则解析为Bean实例的类型,在两个都不指定的情况下,它会先按实例名,再类型的方式装配,找不到则就会抛出NoSuchBeanDefinitionException的异常。

       3.@Qualifiler,与@Autowired配合使用;

       4.@PostConstruct,其注解相当与在配置文件中Bean下的init-method属性,有其注解的方法在Bean初始化后被Spring容器调用;

       5.@PreDestroy,其注解相当于配置文件中Bean下的destroy-method属性,有其注释的方法在Bean销毁前被Spring容器调用。

 

       启用Annotation的方法:

       1.导入注解功能依赖的Jar包:org.springframework.context-3.0.1.RELEASE.JAR,将其加入到当前项目的Classpath中;

       2.在Spring的配置文件中定义context命名空间与相应的schemaLocation:

          <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xmlns:context=http://www.springframework.org/schema/context
         xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd

                                           http://www.springframework.org/schema/context

                                           http://www.springframwork.org/shema/context/spring-context-3.0.xsd   ">

      3.在spring的配置文件中开启注解处理器:
         <context:annotation-config/>

      4.在Bean中使用Annotation注释进行Bean属性的自动装配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值