一、快速创建 SpringBoot 项目
通过 springboot学习二
的学习,知道了创建springboot项目的几种方式,以后都会采用idea社区版本Spring插件的方式来创建springboot项目。
1、新建项目
spring Initializr
:就是idea 提供的Spring 插件Project SDK
:Java 的jdk
2、填写项目信息
根据自己需求填写
Group Id
:项目分组Artifact Id
:分组的项目名,与下面的项目名相同即可Version
:项目版本号Project Type
:项目类型,默认mavenLangage
:语言,默认javaJava version
:Java版本号Project name
:项目名Project description
:项目描述Package name
:项目包结构
3、勾选springboot整合依赖包
我这里只选择了一个web包
4、构建完成
5、maven 环境配置
settings->Preferences。 配置页面如下
- Maven home path:maven 解压路径
- User setting file:maven 中 setting的路径
- Local repository:maven 仓库地址
二、springBoot标准项目结构
1. 标准项目结构
resources
:资源文件,存放静态文件,模板文件,配置文件static
:存放静态文件templates
:存放模板文件application.properties
:springboot配置文件
2. 编写一个测试类
三、springboot项目打包部署
springboot默认将项目打包成jar,然后独立运行
1. pom.xml 文件中的maven 插件
<!-- pom.xml中添加插件 -->
<build>
<plugins>
<!-- SpringBoot打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、maven命令打包
- 通过 maven 运行打包工具
- 打包成功之后,在项目的target包可以找到 jar 包
- 进入target源目录,通过命令行的方式运行 jar(开发过程中我们直接运行启动类就可以了)
- 我这里时Mac电脑,所以可以直接打开jar包所在终端。运行:
java -jar xxx.jar
- 测试一下接口,完美打开hello world。
- 注意:如果想修改项目端口, 可以:
java -jar xxx.jar --server.port=8888
,这里的优先级比在配置文件中的配置的端口号要高
四、修改banner(了解)
1. 修改 banner
SpringBoot提供了一些扩展点,比如修改banner,
例如:在resources根目录
中新建一个 banner.txt
文件,替换默认的banner,txt 内容如下:
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||_ \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
佛祖保佑 永无BUG
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2. 关闭 banner
#application.properties
#关闭banner
spring.main.banner-mode=off
3. 运行成功
五、热部署插件(了解)
除了使用JRebel来实现热部署,还可以使用Springboot提供的spring-boot-devtools包来完成Springboot应用热部署
<!-- SpringBoot热部署插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
也可以在创建项目时,勾选住热部署的依赖。
SpringBoot重启是reload重启,通过监控classpath的变化,如果classpath中的文件发生变化,即触发重启.springboot通过两个classpath来完成reload,一个basic classloader中加载不变的类(jar包中的类),一个restart classloader中加载classpath中的类(自己写的类),重启的时候,restart classloader中的类丢弃并重新加载
#默认排除的资源
spring.devtools.restart.exclude=static/**,templates/**,public/**
#增加额外的排除资源
spring.devtools.restart.additional-exclude=public/** #处理默认配置排除之外的
spring.devtools.restart.enabled=false #禁用自动重启
六、切换运行环境(了解)
在实际开发中,一个系统是有多套运行环境的,如开发时有开发的环境,测试时有测试的环境,不同的环境中,系统的参数设置是不同的,如:连接开发数据和测试数据库的URL绝对是不同的,那么怎么快速的切换系统运行的环境,我们需要为不同的环境创建不同的配置文件。
application-dev.properties
server.port=8081
application-test.properties
server.port=8082
在application.properties中指定需要使用的环境即可
#指定使用的环境是dev spring.profiles.active=dev
七、SpringBoot参数配置
1. 参数来源
主要流程摘要:
- 命令行参数; 如: java -jar xxx.jar --server.port=80
- ServletConfig和ServletContext;
- 操作系统环境变量;
- application-{profile}.properties或者YAML文件;
- application.properties或者YAML文件;
一般用的比较多的就是直接在application.properties或者YAML配置 , 其次是命令行启动方式
application.properties语法
server.port=80
server.session-timeout=30
server.tomcat.uri-encoding=UTF-8
spring.datasource.url = jdbc:mysql://localhost:3306/crm
spring.datasource.username = root
spring.datasource.password = mymysql
spring.datasource.driverClassName = com.mysql.jdbc.Driver
vs
application.yml语法
server:
port: 80
session-timeout: 30
tomcat.uri-encoding: UTF-8
spring:
datasource:
url : jdbc:mysql://localhost:3306/crm
username : root
password : mymysql
driverClassName : com.mysql.jdbc.Driver
2、application.properties优先级
一个项目中可以有多个application.properties文件存放在不同目录中,此时他们会遵循固定的优先级来处理有冲突的属性配置, 优先级由高到底,高优先级的配置会覆盖低优先级的配置
- 项目/config/application.properties
- 项目/application.properties
- classpath:config/application.properties
- classpath:application.properties
注意:一般都在classpath:application.properties做配置,其他方式不使用