简介
L 1.Hello World!
一、初始化项目
二、添加基本的配置
三、简单controller
四、spring boot开发过程中的热加载
L 2. Spring Boot项目中的配置文件
一、两种常用的配置文件
1. 文件格式
2. 语法特点
二、常用的配置项
Spring Boot是当前十分流行的用于开发微服务的Java框架。其设计目的是用来简化Spring应用的初始搭建以及开发过程。Spring Boot使用了特定的方式(约定大于配置的理念)进行配置,从而使开发人员不再需要定义样板化的配置。基于Spring Boot开发服务时,只需要几个简单的配置就可以搭建起来一个Web项目。
Spring Boot进行开发优点在于:简单、快速、方便地搭建项目;对于主流开发框架可以做到无配置集成,提高开发效率。
Spring Boot因其简单与快速构建项目的特点,构建一个简单的只需要简单的几步,就可以搭建一个可用的web工程。
初始化项目主要有两种方式:在IDE中新建Spring Boot工程,或者是通过Spring initializer快速创建一个基础的spring boot工程。下面将介绍使用spring initializer创建一个基础spring boot工程的步骤。
在Spring Initializer页面选择好依赖管理工具、语言以及spring boot的版本;输入工程的group以及artifact以及依赖的jar包,然后点击Generate Project即可生成一个基本的spring boot项目的压缩包。
解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,即完成把spring boot项目导入。
我们只需要在application.properties中配置一下服务的端口号及context path即可。
server.port=8088
server.servlet.contextPath=/springbootdemo
spring boot项目中的controller跟通常spring项目的controller没任何区别;@RestController注解功能spring 4之前的Controller和ResponseBody的组合,该注解表示controller内的接口直接返回数据。
@RestController
@RequestMapping (value="/demo")
public class HelloWordController {
@RequestMapping("/world")
public String hello(){
return "Hello spring boot.";
}
}
写好controller方法后,启动应用,输入访问url:localhost:8088/springbootdemo/demo/world,结果如下图:
Spring Boot支持开发过程中修改代码或者配置后自动重新加载工程的功能,该功能依赖spring-boot-devtools 包,同时还需打开IDE的自动编译(build automatically)功能。
pom文件中引入spring-boot-devtools依赖:
org.springframework.boot
spring-boot-devtools
true
同时在build中添加configuration
添加以上pom配置后,当修改项目中的文件并保存后将自动触发项目的重新启动过程,实现程序的热加载的功能,优化开发者开发调试体验。
Spring Boot项目可以做到开箱即用(约定大于配置)。不过为了满足一些个性化的需求,还是需要手动加入一些配置项的。spring boot支持两种格式的配置文件:application.properties和application.yml。
两种配置文件的格式形如下:
application.properties文件格式示意:
# GENERAL CONFIG START #
## SERVER
server.port=8088
server.servlet.contextPath=/springbootdemo
server.tomcat.uri-encoding=UTF-8
# session time out ,单位为秒,默认30分钟
server.session.timeout=600
#tomcat最大线程数
server.tomcat.max-threads=200
#日志开关
server.tomcat.access-log-enabled=true
#日志格式
server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D
#日志输出目录,这里是设置为当前目录下
server.tomcat.basedir=./
## SPRING
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
# GENERAL CONFIG END #
application.yml文件格式示意:
# GENERAL CONFIG START #
## SERVER
server:
port: 8088
servlet:
contextPath: /springbootdemo
tomcat:
uri-encoding: UTF-8
max-threads: 200
access-log-enabled: true
access-log-pattern: %h %l %u %t "%r" %s %b %D
basedir: ./
## SPRING
spring:
http:
encoding:
charset: UTF-8
enabled: true
force: true
# GENERAL CONFIG END #
正如上面两段代码所示,这两类配置文件主要是语法结构上有一定区别。其中yml格式的配置文件对多语言的适配性更好一些(可以被多种语言识别)。此外yml在配置格式上有严格的要求,每个配置项的“:”之后必须有一个空格,然后再跟上具体的配置值。
1)application.properties文件语法
properties文件语法格式主要以“=”设置的键值对,其键值对设置格式有如下关键要求:
1) “=”两侧不可用空格
2) key设置一般用大写字母
3) 一个键值对设置之后不可有分好
2)yaml语法
yaml语法设置的配置项的可读性相较properties更强一些,更加友好。其主要语法要求如下:
1) 大小写敏感
2) 使用缩进表示层级关系
3) 只可用空格表示缩进,不可用tab
4) 缩进的空格数目可以任意,只要保证同级的配置左对齐即可
5) 每个配置项的“:”之后必须有一个空格
使用yaml语法的配置文件,一定要注意空格的使用,一不小心就会出现配置无法解析的问题。
开发过程中,对于一些中文配置会出现中文配置值在使用时出现乱码的情况,这种情况下需要将配置文件的文件格式设置为utf-8的格式,重新运行程序即可。目前公司常使用的配置文件仍是.properties格式文件,所以以下的文章所使用的配置文件均为application.properties。
Spring Boot构建的web应用一般常用的配置有服务端口号(spring boot默认端口为8080)、根目录、访问url编码格式、http请求及返回的编码格式等。
以上常用配置项为:
# GENERAL CONFIG START #
## SERVER
server.port=8088 // 修改服务端口为8088
server.servlet.contextPath=/springbootdemo // 设置服务根目录
server.tomcat.uri-encoding=UTF-8 // 设置tomcat URI编码方式
## SPRING
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
# GENERAL CONFIG END #
除了上面的基本配置之外,还可以使用其他参数设设置服务最佳的运行参数。spring boot中内嵌的tomcat可以通过一些配置设置tomcat最大响应线程数,用户会话保持时间,accesslog日志相关设置等。
# session time out ,单位为秒,默认30分钟
server.session.timeout=600
#tomcat最大线程数
server.tomcat.max-threads=200
#日志开关
server.tomcat.access-log-enabled=true
#日志格式
server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D
#日志输出目录,这里是设置为当前目录下
server.tomcat.basedir=./