文章目录
打包简化部署
在项目中添加插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
指定默认执行类
指定打包方法
maven -> 项目下Lifecycle ->package 执行打包命令
可以用java- jar的命令进行执行
父项目
spring-boot-dependencies:真正管理springboot中依赖的版本。如果在这其中不包含的需要声明版本号。
spring-boot-starter-web:场景启动器,导入web模块运行所需要依赖的组件。
spring-boot将所有功能、场景抽取出做成starter(启动器),需要什么功能就在依赖中导入什么starter,与此starter相关场景的所有依赖都会被导入。
Spring Initializer创建一个Springboot项目
默认生成的Soringboot项目中,主程序已经生成,只需添加自己的逻辑代码。
另resources文件夹下:
static:保存静态资源,js,css,images
template:保存模板页面(默认jar包使用嵌入式Tomcat,不支持JSP页面),可以使用模板引擎(freemarker,thymeleaf)
application.properties:配置文件。
Springboot配置
分为application.properties 文件和 application.yml 文件两种。properties的优先级高于yml。
application.properties 文件和 application.yml 文件区别
application.properties中
server.port=8801
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http\://localhost\:${server.port}/eureka/
yml中:
server:
port: 8801
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:8801/eureka/
YAML(非必要)
不是一种标记语言,以数据为中心,省略标签,比xml更适合做配置文件。
YAML语法
- 缩进表层级关系,不允许Tab,只可以空格。且空格数目不重要,只要相同层级左侧相同即可。
- 大小写敏感
YAML支持的三种语法
- 对象:键值对集合。
分行写法
object
k:v
k:v
行内写法
object:{k:v, k:v}
- 数组:一组按次序拍排的值
分行写法
object
- value
- value
行内写法
object:[value, value]
- 字面量:单个的,不可再分的值。其中,字符串不用加双引号或单引号。
k:v
如果加双引号,那么里面的特殊字符不会被转义。
如果加单引号,那么里面的特殊字符会被转义后输出。
e.g.“my name is \n HanMeimei”
双引号输出“my name is \n HanMeimei”
单引号输出““my name is
HanMeimei””
配置文件占位符
- 随机数: r a n d o m . v a l u e , {random.value}, random.value,{random.int}, r a n d o m . l o n g , {random.long}, random.long,{random.int(10)},${random.int(1024,65536)}
- 占位符获取之前配置的值,如果没有可以用冒号:指定默认值:person.dog.name=${person.hello: hello}_dog
profile
对Spring不同环境提供不同配置功能的支持,可以通过激活、指定参数的方式快速切换环境。
- 多profile文件模式
- 多profile文档块模式
- 激活方式:
配置文件加载位置
工程根目录:./config/
工程根目录:./
classpath:/config/
classpath:/
加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖底优先级的内容,形成互补配置。
外部配置加载顺序
参考
自动配置原理
参考