《回顾》
上篇文章说了SpringBoot的概念及详细的介绍了如何搭建一个SpringBoot基本项目
有人说,这一些并不是我想要的。我要用SpringBoot写项目,带页面的那种。
一步步来。
本篇文章,将介绍SpingBoot常用的一些配置,和使用Freemarker搭建第一个页面。
SpringBoot,常用的配置文件分为两种
.properties
.yml
YAML,是SpringBoot引入的一种配置文件,支持树形结构,并且支持将一个文档切割成多份。之前未使用过的,有一定的学习成本,但是极低。
去年,我在写SpringBoot1.5.9文章的时候,强烈安利使用YAML,一文件,多环境方便自动化部署。但是经过这一年多在生产环境的实际应用和磨合情况来看,当时,是我冲动了。
简单说明下情况:
我们这所有的项目,都是自动化部署,并且代码和配置文件分离的,一般配置文件都放置在服务器某固定位置。
缺点也就随之暴露:
1、SpringBoot加载项目外的yml不太稳定,不知道2.0以后有没有优化。
2、脱离IDE后,YAML文件结构变的不那么清晰,特别是配置项极多的时候,容易在结构上出问题
springboot2.1.1 这次,我安利properties
来看下SpingBoot2.1都有哪些常用的配置
#### 基本配置 #####
# 端口号默认8080
server.port=8080
# 文根,等同于tomcat/webapps下面的项目名称,默认/
server.servlet.context-path=/springbootz
# http编码,默认UTF-8
spring.http.encoding.charset=UTF-8
##### 日志 #####
# 日志等级
logging.level.root=info
# 日志路径(硬盘路径,Windows下使用C:\\xxx,D:\\xxx 等)
# logging.path=/opt/logs/springbootz/
# 日志文件名称
logging.file=/opt/logs/springbootz/spring.log
有一点需要注意,SpringBoot1.X中,文根配置和2.X略微不同,1.X中使用「server.context-path」配置文根。
问题来了,有Thymeleaf,有Freemarker,为啥选Freemarker?
以我的脾气,选择是不可能选择的,这辈子都不可能。
Thymeleaf,关注下一篇。
引入Maven依赖,文件:“pom.xml”
org.springframework.boot
spring-boot-starter-freemarker
配置SpringBoot集成支持,文件:“application.properties”
#### freemarker配置 #####
# 开启freemarker支持
spring.freemarker.enabled=true
# 文件后缀名
spring.freemarker.suffix=.ftl
# 开启缓存
spring.freemarker.cache=true
# 编码
spring.freemarker.charset=UTF-8
# freemarker存放路径
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
动手写代码。
新建“IndexController.java”
新建“src/resources/templates/index.ftl”
结构如下:
IndexController.java 内容:
@Controller
public class IndexController {
private Logger log = LoggerFactory.getLogger(getClass()); // 日志
@GetMapping("/index")
public String index(){
log.info("访问首页");
return "index";
}
}
index.ftl 内容
SpringBoot演示
这是一个freemarker页面。
启动应用,访问首页,这里有细节:
1、可以看到标题和内容,都已经是 index.ftl 内容
2、红线1,我们在application.properties中配置的“server.servlet.context-path”文根值
3、红线2,Controller路径。
上两者只要配置过,缺一不可。
扩展,如何从前端传递参数到后端,后端再带回前端并展示在页面?
IndexController.java 增加内容:
@GetMapping("/index/{name}")
public String index(ModelAndView modelAndView, @PathVariable String name){
log.info("{}:访问首页",name);
modelAndView.addObject("name",name);
return "index";
}
index.ftl 增加内容
欢迎你:${name!''}
启动应用,访问:http://localhost:8080/springbootz/index/张三
关于日志
控制台日志打印
两个颜色的框,对应两个不同的打印。
日志文件
上面application.properties 中,我们配置了“/opt/logs/springbootz/”作为我们的日志路径。
可以到该文件夹下查看内容。
Windows系统一样的道理,如果配置的是E:\\logs\springbootz直接进入对应的文件夹去找文件查看即可。
要介绍的三点,已经结束,细水长流,水滴石穿,多些耐心去学习,我相信你可以很优秀。
博客内所有文章,每周从公众号同步一次。
文章源码均可从公众号获取。
如果您可以关注下,那就好了。