Spring的常用标注

Posted Hero丶小卡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的常用标注相关的知识,希望对你有一定的参考价值。

组件扫描
    什么是组件扫描
      Spring框架提供了一套 基于注解(标注) 的组件创建 和 装配的技术。这项技术
      可以大大的简化XML的配置。这套技术的名字叫组件扫描。
    实现组件扫描的步骤
      a.建立一个项目 导入jar包(ioc aop) 并拷贝 Spring容器对应的配置文件到src下
      b.在Spring 容器对应的配置文件中 开启组件扫描
      <context:component-scan base-package="包名" />
      c.写一个实体类 在类上加对应的标注
  @Component 通用层标注
    如果直接加在类上 则组件的名字就是类名首字母小写 可以通过 value 属性来指定
    名字,当然只有一个value属性时 value 可以省略。
  @Repository 持久层标注
  @Service 服务层标注
  @Controller 控制层标注
    d.创建Spring 容器对象 并从容器中获取对应的组件对象

1.组件扫描中 和 作用域 初始化 销毁等相关的标注
  作用域 可以通过 @Scope("singleton|prototype")
  初始化 可以通过 @PostConstruct
  销毁 可以通过 @PreDestroy

2.和组件装配相关的标注
  @Value 可以用在成员变量 set方法 上 用来解决简单值的注入问题 如果要注入复杂的对象
  可以结合EL表达式完成。
  @Autowired 可以用在成员变量 set方法 以及构造方法上 。
  优先按照类型进行匹配 如果有两个及以上相同的类型 则启用名字进行匹配。
  如果想指定名字进行查找 可以使用 @Qualifier("组件id")
  使用 @Qualifier 不能加在构造方法上
  @Autowired 默认对组件的依赖是强依赖(没有对应的组件 程序会抛异常 )
  可以requried 属性指定成false 代表尽量去找对应的组件 找不到也不抛异常

@Resource 可以用在 成员变量 set方法上 不能用在构造上
  这个标注 不是Spring 框架的标注 这是JDK 中的标注
  优先按照名字进行匹配 如果找不到会 启用类型匹配
  无法使用requried 如果有多个符合条件的组件 可以使用name 属性指定

以上是关于Spring的常用标注的主要内容,如果未能解决你的问题,请参考以下文章

Spring常用注解

spring常用注解

spring注解常用汇总

spring注解常用汇总

spring mvc常用注解总结

SpringSpringMVCSpringBootSpringCloud 框架常用注解说明