分享

spring常用注解

 昵称58873993 2018-09-29
1、@Controller用于标注Controller层,即控制层,它用于标记在一个类上,使用@Controller标记的类就变成一个SpringMVC Controller对象。分发处理器将会扫描使用了该注解的类的方法。通俗理解就是,被Controller标注的类就是一个控制器,这个类中的方法就是相应的动作。

与@Controller相对应,@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示该类中的所有响应请求的方法都会以该地址作为父路径,作用到方法上时,则会在已有父路径的基础上添加相应路径

2、@Service用于标注业务层


3、@Repository用于标注数据访问组件,即DAO组件


4、@Component用于泛指组件,当组件不好归类的时候,可以使用Component进行标注


5、@Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去。当Spring找不到bean时会抛出异常,将@Autowired注解的required属性设置为false 不会抛出异常,会显示null

当有多个bean对应时,Spring因为不能判定应该使用哪个bean同样会抛出异常,此时使用@Qualifier("class-name")注解,即可指定bean


6、@Resource注解,默认通过name属性去匹配bean,当找不到时再按type去匹配,当指定了name或者type则根据指定的类型去匹配bean,任何一个不匹配豆浆报错


@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配

@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了

Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。


7、component-scan标签默认情况下自动扫描指定路径下的包(含所有子包),将带有@Component、@Repository、@Service、@Controller标签的类自动注册到spring容器。对标记了 Spring's @Required、@Autowired、JSR250's @PostConstruct、@PreDestroy、@Resource、JAX-WS's @WebServiceRef、EJB3's @EJB、JPA's @PersistenceContext、@PersistenceUnit等注解的类进行对应的操作使注解生效(包含了annotation-config标签的作用)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多