配置文件
默认配置文件:application.properties
server.port=8081
server.servlet.context-path=/girl
推荐配置文件:application.yml
server:
port: 8081
servlet:
context-path: /girl
推荐使用.yml
文件
自定义配置文件
- 在.yml文件中
SpringBoot 新特性:
编程语言:Java8+ Kotlin
底层框架:Spring Framwork 5.0x
全新特性:Web Flux
为什么选择Web Flux?
- 函数编程:java 8 Lambda
- 响应编程:Reactive Streams RxJava
- 异步编程:Servlet 3.1 或 Asyc NIO
创建第一个SpringBoot项目。
Spring Initializr
Reactive Web 基于WebFlux开发,传统的Spring Mvc是基于传统的Servlet容器,如Jetty 或Tomcat.
Spring Boot 多模块 分层
解释
- 模型层:model
- 持久层:persistence
- 表示层:web
web 依赖于 persistence , persistence依赖于model。即,
UserController
-->UserRepositroy
-->User
- web作为主项目,为web 的 pom.xml文件添加persistence依赖。
<!-- 增加persistence依赖-->
<dependencies>
<dependency>
<groupId>com.zd</groupId>
<artifactId>persistence</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
2.为persistence 的 pom.xml文件添加model依赖。
<!-- 增加model依赖-->
<dependencies>
<dependency>
<groupId>com.zd</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
项目打包:
- 构建 jar
- 构建 war
- 指定 Main - Class
1. 通过默认的jar打包发布:
具体步骤:
- 打开命令行
- cd projectpath
- 执行命令"mvn -Dmaven.test.skip -U clean package"
- 会报错<Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.3.RELEASE:repackage (default) on project model: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:2.0.3.RELEASE:repackage failed: Unable to find main class -> [Help 1]>
在web(为主项目)项目的pom.xml文件中做如下处理:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.zd.firstappdemo.FirstAppDemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
如上,加入< configuration />
标签,指定Main-Class(com.zd.firstappdemo.FirstAppDemoApplication
)。
最后,通过java -jar web-0.0.1-SNAPSHOT.jar
启动
2. 通过war打包发布
修改web
的pom.xml
文件中<package />
标签
<!-- 将packaging 值调整为war(默认为jar)-->
<packaging>war</packaging>
重新执行maven命令:mvn -Dmaven.test.skip -U clean package
会报一下错误
Failed to execute goal org.apache.maven.plugins:maven-war-plugin:3.1.0:war (default-war) on project web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) ->
需要符合maven war包
插件的规范,在main
目录下增加,webapp , WEB-INF , web.xml
, 如下修改:
重新打包,
查看目录
再次执行命令java -jar web-0.0.1-SNAPSHOT.war
,启动
war包需要放在tomcat Jetty 这样的web容器里面,做Android的,对这句话没有更加直接的认识。😅
运行模式
IDEA 方式(开发阶段)
JRA/WAR方式(线上,或者服务器)
Maven插件方式(命令行方式)