Annotation in spring

Annotation in spring

Java从JDK1.5以后,提供了Annotation的功能

spring中的常用注解

  • @Component

是一个泛化的概念,仅仅表示一个组件(Bean)

  • @Repository

标识DAO层的组件

  • @Service

标识Service层的组件

  • @Controller

标识Controller层的组件

  • @Autowired

按照Bean类型装配

  • @Resource

按照Bean实例名称装配

  • @Qualifier

@Autowired配合使用,会将默认的按Bean类型装配修改为按照Bean实例名称装配,Bean的实例名称由@Qualifier注解的参数指定。

Notice

  • @Component是泛化的,@Repository @Service @Controller是具体的,这三个注解可以用@Component代替,但为了明确Bean的职责,一般不这么用。

  • @Resource注解部分源码如下

package javax.annotation;

import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
public @interface Resource {

    String name() default "";

    String lookup() default "";

    Class<?> type() default java.lang.Object.class;

    enum AuthenticationType {
            CONTAINER,
            APPLICATION
    }

    AuthenticationType authenticationType() default AuthenticationType.CONTAINER;

    boolean shareable() default true;
    String mappedName() default "";
    String description() default "";
}

属性装配规则

  1. 如果指定了name属性,那么按照实例名称进行装配
  2. 如果指定了type属性,那么按照Bean类型进行装配
  3. 如果都不指定,则先按照实例名称装配,如果不能匹配,再按照Bean类型进行装配。如果都无法匹配,则抛出NoSuchBeanDefinitionException异常

小结

基于xml配置文件装配,过于臃肿,给后续的维护和升级带来一定的困难,基于注解的装配解决了这个缺陷

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值