java架构师学习路线:spring常用的核心注解
随着技术的更新和迭代,Java5.0开始支持注解。作为Java中领先的Spring框架,自2.5版本更新以来,它逐渐放弃了xml配置,并使用了更多注解来控制spring框架。
而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架构师学习路线