Spring Boot

配置文件

默认配置文件: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.

image.png

Spring Boot 多模块 分层

解释
 - 模型层:model
 - 持久层:persistence
 - 表示层:web

web 依赖于 persistence , persistence依赖于model。即,UserController-->UserRepositroy-->User

  1. 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>
多模块项目结构目录
image.png

项目打包:

- 构建 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打包发布

修改webpom.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 , 如下修改:

添加如下

重新打包,


image.png

查看目录


image.png

再次执行命令java -jar web-0.0.1-SNAPSHOT.war,启动

war包需要放在tomcat Jetty 这样的web容器里面,做Android的,对这句话没有更加直接的认识。😅

运行模式

  IDEA 方式(开发阶段)
  JRA/WAR方式(线上,或者服务器)
  Maven插件方式(命令行方式)
maven插件的方式:

注:如需要这种打包方式,请参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容