上一篇笔记简单的讲了一下SpringBoot项目的创建,以及如何启动。这次笔记主要记录一下application.properties配置文件的简单配置。SpringBoot对于SpringMVC最大的改变就是将很多xml配置文件给干掉了,主要通过application.properties和注解来配置,可以使整个项目结构看起来更加简洁。注:这篇笔记使用application.properties。
配置文件简述
配置文件类型
SpringBoot支持两种配置文件格式,一种是默认的application.properties,还有一种是更为简单方便的application.yaml(推荐)。yaml是一种以数据为中心的配置格式,在配置数据的时候具有面向对象的特征。通过下面的示例可以看出其中的区别:
application.properties:
server.port=8090
server.context-path=/demo
application.yaml:
# 需要注意的是属性和参数之间必须有一个空格隔开,不能是一个tab,也不能没有空格
server:
port: 8090
context-path: /demo
可以看到,yaml明显更简洁,而且结构感更强,其中server.port是设置的访问端口号,server.context-path是设置的访问路径(默认为/)。需要注意的是,目前IDEA在yaml配置文件中提供了自动提示。
命令行参数配置
上一篇笔记已经讲了,运行SpringBoot项目只需要执行java -jar 包名.jar
就可以运行了,其实还可以这样干,java -jar 包名.jar --server.port=9999
,这样就可以将默认端口改成9999。
自定义属性
application.properties可以自定义属性,并在Controller类中调用,如:
application.properties
man.name=Jack
man.age=18
man.sex=male
新建一个Controller类
@RestController
public class DemoController {
//通过@Value注解获取配置文件对应的参数并且赋值给变量
@Value("${man.name}")
private String name;
@Value("${man.age}")
private Integer age;
@Value("${man.sex}")
private String sex;
//设置访问路径
@RequestMapping(value = "/")
public String index(){
return "姓名:"+name+",年龄:"+age+",性别:"+sex;
}
}
执行Application类,访问localhost:8080
就可以看到姓名:Jack,年龄:18,性别:male
。
Profile配置
Profile是Spring用来针对不同环境对不同的配置提供支持的,全局Profile配置使用application
-{profile}.properties(如application-prod.properties)。通过在application.properties中设置spring.profiles.active=prod
来指定活动的Profile。
如:
我们新建两个配置文件application-prod.properties(生产环境),application-dev.properties(开发环境),用来模拟生产环境和开发环境配置不一样的情况。
如端口配置:
//application-prod.properties
server.port=80
//application-dev.properties
server.port=8080
然后在默认的application.properties中配置spring.profiles.active=dev
,然后启动项目所访问的路径就是localhost:8080
,同样设置为prod的话,访问路径就是localhost:80
。
上面的配置只是一些很简单的配置,学到后面的时候还会有更多的配置需要学,目前为止掌握这些就够了。现在还没有涉及到数据库的操作,到了数据库和JPA操作的时候,还会说到一些配置的。
有趣的banner自定义
大家应该在启动项目的时候注意到了控制台输出有Spring的图案,其实这个是可以自定义的。
只需要在src/main/resources
下新建一个banner.txt,然后写入你想显示的图案就行了。可以通过http://patorjk.com/software/taag这个网站来生成字符。如写入Hello World,然后将生成的字符复制到banner.txt中就可以了。如下图:
值得注意的是,自定义banner还有一些属性可以设置:
${AnsiColor.BRIGHT_RED}:用于设置设置控制台中输出内容的颜色(放在内容之前)
${application.version}:获取MANIFEST.MF文件中的版本号
${application.formatted-version}:获取格式化后的${application.version}版本信息
${spring-boot.version}:获取Spring Boot的版本号
${spring-boot.formatted-version}:获取格式化后的Spring Boot版本信息
例如:
${AnsiColor.BLUE}
___ ___ .__ .__ __ __ .__ .___
/ | \ ____ | | | | ____ / \ / \___________| | __| _/
/ ~ \_/ __ \| | | | / _ \ \ \/\/ / _ \_ __ \ | / __ |
\ Y /\ ___/| |_| |_( <_> ) \ ( <_> ) | \/ |__/ /_/ |
\___|_ / \___ >____/____/\____/ \__/\ / \____/|__| |____/\____ |
\/ \/ \/ \/
${AnsiColor.BRIGHT_YELLOW}
${spring-boot.version}
启动:
本次就记录到这里吧,后面这个笔记系列会一直更新下去的。