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 来进行的

posted on 2019-01-09 15:53  莫林李忠利  阅读(110)  评论(0编辑  收藏  举报

导航