@SpringBootApplication
上一节写HelloWorldDemo时主程序类被修饰了一个@SpringBootApplication,【顾名思义-SpringBoot应用注解】标注在某各类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用,是一个组合注解。
这个组合注解中包含Spring里的@Configuration、@Import、@EnableAutoConfiguration、@ComponentScan等底层注解,之前也说SpringBoot有自动配置的优点,那么只要你在主程序配置了@SpringBootApplication,其所在包及其中子包里所有的组件都扫描到Spring容器,这是其中的@AutoConfigurationPackage【自动配置包】的作用
@RestController
@RestController标注在Controller类上,也是一个组合注解,主要包含@Controller和@ResponseBody
@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,页面不会发生跳转。
配置文件
新建Spring Initializer项目时会生成一个application.properties,除了这个properties文件还支持yml格式的配置文件,两者的书写格式有所不同,yml更加的清爽适合用来作为配置文件。
在建博客的时候遇到的配置文件都是yml类型,所以已经有些熟悉。
值的格式
k: v //k和v之间一定要有空格
普通的值:数字,字符串,布尔
字符串不用加引号,但如果字符串中含有空格或特殊字符,要用单引号括起来,否则会被转义。
布尔类型:用on、1、true来表示true,off、0、false来表示false
对象、Map、数组
对象的值就在下一行写对象的属性值,注意缩进。
friends:
lastName: zhangsan
age: 20
行内写法:【也是Map的写法】
frends: {lastName: zhangsan,age: 20}
数组:用”- “隔开
pets:
- cat
- dog
数组的行内写法:
pets: [dog,cat]
@ConfigurationProperties
在配置文件中写好值后,如何获取参数?
@ConfigurationProperties
最常见的方法有将对象以映射的方式,将配置信息封装成一个类,创建一个class,在类上修饰:@Component 和 @ConfigurationProperties(prefix=”xxx”),前者是将类变成一个JavaBean,后者表示前缀为xxx的配置信息被绑定
我们可以导入配置文件处理器,写配置文件时会有相应包下bean的自动提示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
JavaBean:
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private Integer age;
private List<Object> list;
yml配置文件:
person:
age: 20
name: Zhangsan
list:
- miao
- wang
如果是properties文件要将文件编码改为ASCII码,否则会出现乱码,设置步骤为:Settings-File Encodings-√Transparent native-to-ascii conversion
@Value
同Spring一样@Value(“${xxx}”)
其中引号中可以用EL表达式表示#{xxx}