Spring Boot 常用注解
-
@Configuration
:标识一个类为配置类,通常配合@Bean、@ComponentScan等注解一起使用 -
@Bean
:标注在方法上,将方法返回的对象注入IOC容器 -
@Component
:标注在类上,标注的类将会被注入IOC容器 -
@ComponentScan
:自动扫描组件,默认扫描该类所在包及其子包下所有带有指定注解的类,将它们自动装配到bean容器中,会被自动装配的注解包括@Controller、@Service、@Component、@Repository等。也可以指定扫描路径 -
@Scope
:通常与@Bean注解一起使用,标识放入ioc容器中的对象是单例还是多例 -
@Import
: 三种用法:- @Import一个普通类 spring会将该类加载到spring容器中
- @Import一个类,该类实现了ImportBeanDefinitionRegistrar接口,在重写的registerBeanDefinitions方法里面,能拿到BeanDefinitionRegistry bd的注册器,能手工往beanDefinitionMap中注册 beanDefinition
- @Import一个类 该类实现了ImportSelector 重写selectImports方法该方法返回了String[]数组的对象,数组里面的类都会注入到spring容器当中
-
@ConfigurationProperties
:用来将properties和yml配置文件属性转化为bean对象使用,如下示例(个人理解:标注这个注解的类可以理解为就是一个属性类,也就是说这个类用于接收yml文件中配置的属性信息)@Component //如果没有加Component注解,在别的地方也没有加EnableConfigurationProperties(DataSourceProperties2.class)注解,那么这个这个类就不会被加入到容器中 //会将在yml配置文件中以spring.jdbc.datasource为前缀的,和这个类属性相匹配的属性注入值 @ConfigurationProperties(prefix = "spring.jdbc.datasource") public class DataSourceProperties2 { private String driverClassName; private String url; private String username; private String password; // 省略getter和setter..... }
-
@EnableConfigurationProperties
:让使用了 @ConfigurationProperties 注解的配置类生效,将该类注入到 IOC 容器中,交由 IOC 容器进行管理,此时则不用再配置类上加上@Component,具体解释可以看上面的代码块