@SpringBootApplication | 标注一个主程序类,说明这是一个Spring Boot应用 |
@RequestMapping("/hello") | 标注请求的Url,写在controller里面 |
@ResponseBody | 把请求写给浏览器 |
@RestController | @ResponseBody+ @Controller, 这个类的所有方法返回的数据直接写给浏览器,(如果是对象转为json数据) |
@ConfigurationProperties(prefix = "person") | 将配置文件中配置的每一个属性的值,映射到这个组件中; 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定; prefix = "person":配置文件中哪个下面的所有属性进行一一映射 默认从全局配置文件中获取值 |
@Component | 把类加入容器中 |
@SpringBootTest | SpringBoot单元测试 |
@RunWith(SpringRunner.class) | 单元测试用Spring驱动器来跑,而不是junit |
@Value("${person.last-name}") | 赋值,从配置文件中取值 |
@Value("#{11*2}") | 赋值,spring表达式计算出22 |
@Value("true") | 赋值,直接为true |
@Email | 值必须是邮箱格式 |
@PropertySource(value = {"classpath:person.properties"}) | 加载指定的配置文件 |
@ImportResource(locations = {"classpath:beans.xml"}) | 导入Spring的配置文件,让配置文件里面的内容生效; Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别; 想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上 |
@Configuration @Bean | SpringBoot推荐给容器中添加组件的方式;推荐使用全注解的方式 1、配置类@Configuration------>Spring配置文件;指明当前类是一个配置类;就是来替代之前的Spring配置文件 2、使用@Bean给容器中添加组件;将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名 |
@EnableAutoConfiguration | 利用EnableAutoConfigurationImportSelector给容器中导入一些组件 |
| |
| |
@Value获取值和@ConfigurationProperties获取值比较
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验(@Email注解...) | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;