@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注解...) 支持 不支持
复杂类型封装 支持 不支持
配置文件yml还是properties他们都能获取到值;
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;