目录
@ConfigurationProperties和@Value注解的作用和区别?
SpringBoot核心注解?
@SpringBootApplication:这个注解是一个组合注解,它包含了@Configuration、@EnableAutoConfiguration和@ComponentScan注解。这个注解表示这是一个Spring Boot应用程序,并启用自动配置和组件扫描。
@SpringBootConfiguration:本质上就是@Configuration,将一个类配置成容器类,类似于xml的的bean文件。
@RestController:这个注解表示这个类是一个RESTful Web服务的控制器。它的方法返回的结果会被自动转换为JSON格式。
@RequestMapping:这个注解用于映射HTTP请求到控制器的处理方法。它可以用于类级别和方法级别。
@Autowired:这个注解用于自动装配Spring Bean。它可以用于构造函数、属性和方法参数上。
@Value:这个注解用于注入配置属性。它可以用于属性和方法参数上。
@Configuration:这个注解表示这个类是一个配置类,它可以包含@Bean注解的方法,用于创建Spring Bean。
@EnableAutoConfiguration:这个注解表示启用Spring Boot的自动配置机制。
@ComponentScan:这个注解用于扫描指定包及其子包下的组件,并将它们注册为Spring Bean。
@Import:Spring 3.0添加注解,用来导入一个或者多个@Configuration注解修饰的配置类。
@ConditionalOnClass:组合@Conditional注解,当容器中有指定Class才可开启配置。
什么是自动配置,自动配置的过程?
自动配置的作用:在使用数据源时,不需要手动配置数据源对象
- 系统在启动时会读取spring-boot-autoconfigure中的meta-inf中的spring.factories中所有的需要自动装配的类,过滤掉不符合条件;清单
- 引入jdbc的启动器(满足了启用自动配置的条件:)
如果存在指定的字节码文件,启动自动配置类
@ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class})
- 加载配置文件中的属性信息
将属性配置类作为bean注入到容器中 @EnableConfigurationProperties({DataSourceProperties.class})
@ConfigurationProperties和@Value注解的作用和区别?
@ConfigurationProperties和@Value注解
都是Spring Boot中用于注入配置属性的注解,但它们的作用和使用方式有所不同。
作用:
@ConfigurationProperties注解的作用是将配置文件中的属性值注入到Java Bean中,通常在application.properties或application.yml文件中定义属性值。使用@ConfigurationProperties注解时,需要创建一个Java Bean,并使用@ConfigurationProperties注解标记这个Bean,指定前缀或属性名,Spring Boot会自动将属性值注入到这个Bean的属性中。
使用@Value注解时,可以将单个属性值注入到Java Bean的属性中,也可以注入到方法参数中。
区别:
ConfigurationProperties | Value | |
---|---|---|
全局绑定 | 支持 | 不支持 |
SPEL | 不支持 | 支持 |
复杂数据类型 | 支持 | 不支持 |
名字松散绑定 | 支持: ip_Address ipaddress | 不支持:ipAddress |
JSR303数据验证 | 支持 | 不支持 |