Spring Boot(一)

@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}