zoukankan      html  css  js  c++  java
  • spring注解浅析

    ·@RestController
    ·@Autowired
    ·@RequestMapping(value = "/villageDictionarySearchTreeList")
    ·@FeignClient(name = "iot-village-server", fallbackFactory = VillageDictionaryListFeignClientFallbackFactory.class)
    ·@Component
    ·@Override

    1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。
    2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。
    为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密结合,既大大减少了配置文件的体积,又增加了Java Bean的可读性与内聚性。

    spring的注解可以分为两大类
    spring的bean容器相关的注解,或者说bean工厂相关的注解;
    spring MVC相关的注解
    spring 的bean容器相关注解:先后有:@Required, @Autowired, @PostConstruct, @PreDestory,还有Spring3.0开始支持的JSR-330标准javax.inject.*中的注解(@Inject, @Named, @Qualifier, @Provider, @Scope, @Singleton).

    springmvc相关的注解有:@Controller, @RequestMapping, @RequestParam, @ResponseBody等等。

    得先了解java中的注解
    最为熟悉的是@Override
    他的定义:@Target(ElementType.METHOD)
    @Retention(RetentionPolicy.SOURCE)
    public @interface Override {
    }
    这里又提到了元注解(定义注解的注解)有@Target,@Retention,@Document

    @Autowired 是我们使用得最多的注解,其实就是 autowire=byType 就是根据类型的自动注入依赖(基于注解的依赖注入),可以被使用再属性域,方法,构造函数上。

    @Qualifier 就是 autowire=byName, @Autowired注解判断多个bean类型相同时,就需要使用 @Qualifier("xxBean") 来指定依赖的bean


    spring中注解的处理基本都是通过实现接口 BeanPostProcessor 来进行的

  • 相关阅读:
    Upgrading to MySQL 5.7---focusing on temporal types
    mysqldump备份7
    mysqldump原理5
    mysqldump原理4
    mysqldump原理3
    mysqldump原理2
    mysqldump原理1
    MySQL复制中slave延迟监控
    赵浮云的blog 关注IT运维,开源硬件。
    爱维帮---LVS
  • 原文地址:https://www.cnblogs.com/jacksonlee/p/10244890.html
Copyright © 2011-2022 走看看