java架构师学习路线:spring常用的核心注解

随着技术的更新和迭代,Java5.0开始支持注解。作为Java中领先的Spring框架,自2.5版本更新以来,它逐渐放弃了xml配置,并使用了更多注解来控制spring框架。
  而spring的的注解那么多,可能做java很多年,都用不上。那么,spring框架的核心注解有哪些?
  java架构师学习路线:spring常用的核心注解

@Required
  此注解用于bean的setter方法上。表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion。
  @Autowired
  此注解用于bean的field、setter方法以及构造方法上,显式地声明依赖。根据type来autowiring。
  当在field上使用此注解,并且使用属性来传递值时,Spring会自动把值赋给此field。也可以将此注解用于私有属性(不推荐),如下。
  @Component
  publicclassUser{
  @Autowired
  privateAddressaddress;
  }
  最经常的用法是将此注解用于settter上,这样可以在setter方法中添加自定义代码。如下:
  @Component
  publicclassUser{
  privateAddressaddress;
  @AutoWired
  publicsetAddress(Addressaddress){
  //customcode
  this.address=address;
  }
  }
  当在构造方法上使用此注解的时候,需要注意的一点就是一个类中只允许有一个构造方法使用此注解。
  此外,在Spring4.3后,如果一个类仅仅只有一个构造方法,那么即使不使用此注解,那么Spring也会自动注入相关的bean。如下:
  @Component
  publicclassUser{
  privateAddressaddress;
  publicUser(Addressaddress){
  this.address=address;
  }
  }
  @Qualifier
  此注解是和@Autowired一起使用的。使用此注解可以让你对注入的过程有更多的控制。
  @Qualifier可以被用在单个构造器或者方法的参数上。当上下文有几个相同类型的bean,使用@Autowired则无法区分要绑定的bean,此时可以使用@Qualifier来指定名称。
  @Component
  publicclassUser{
  @Autowired
  @Qualifier(“address1”)
  privateAddressaddress;
  …
  }
  @Configuration
  此注解用在class上来定义bean。其作用和xml配置文件相同,表示此bean是一个Spring配置。此外,此类可以使用@Bean注解来初始化定义bean。
  @Configuartion
  publicclassSpringCoreConfig{
  @Bean
  publicAdminUseradminUser(){
  AdminUseradminUser=newAdminUser();
  returnadminUser;
  }
  }
  @ComponentScan
  此注解一般和@Configuration注解一起使用,指定Spring扫描注解的package。如果没有指定包,那么默认会扫描此配置类所在的package。
  @Lazy
  此注解使用在Spring的组件类上。默认的,Spring中Bean的依赖一开始就被创建和配置。如果想要延迟初始化一个bean,那么可以在此类上使用Lazy注解,表示此bean只有在第一次被使用的时候才会被创建和初始化。
  此注解也可以使用在被@Configuration注解的类上,表示其中所有被@Bean注解的方法都会延迟初始化。
  @Value
  此注解使用在字段、构造器参数和方法参数上。@Value可以指定属性取值的表达式,支持通过#{}使用SpringEL来取值,也支持使用${}来将属性来源中(Properties文件、本地环境变量、系统属性等)的值注入到bean的属性中。
  相关推荐:图灵学院VIP学员斩获一线互联网offer-java架构师学习路线