玖叶教程网

前端编程开发入门

SpringBoot项目快速启动和配置(springboot加快启动速度)

摘要:作为JAVA编程基础,Spring Boot框架的快速掌握是必不可少的,本文让您快速启动和配置SpringBoot项目,达到快速上手的目的,也供学习或者工作中参考。


1、快速生成

快速创建一个SpringBoot项目可以使用Spring Initializr,有现成的,如下网址:

https://start.spring.io/

也可以把Spring Boot作为标准的java库来使用:在classpath中包含spring-boot-*.jar,而不需要任何特殊的集成工具,所以能够使用任何的IDE或者文本编辑器。

Spring Boot应用程序也没有任何特殊之处,运行和调试Spring Boot应用程序也和其他java程序一样。

尽管可以拷贝Spring Boot的Jar包文件,但推荐使用支持支持依赖管理的构建工具,例如:Maven或者Gradle。

Spring Initializr会自动生成maven和gradle依赖配置文件。

2、使用maven构建(build)程序和管理依赖

使用包org.springframework.boot作为groupid。

Maven POM文件继承自spring-boot-starter-parent 项目,同时可以声明一到多个启动器(Starter),这些启动器用于快速添加jar包到classpath中。冒烟测试时可以在POM文件的parent段中引入spring-boot-starter-parent。

spring-boot-starter-parent是特殊的启动器,提供默认的maven功能,也默认提供dependency-management段,因此不需要提供version属性,spring-boot-starter-parent的描述可进一步参考其他文章。

和spring-boot-starter-parent不同,其他的启动器能够针对某种类型的应用程序提供默认的依赖引入。例如:spring-boot-starter-web启动器提供对web应用程序的依赖支持。

Spring boot也提供 一个可选Maven Plugin(插件)来创建可执行的jar。

一个典型的POM文件:

查看一个项目的依赖树,使用如下命令:

mvn dependency:tree

某项目的依赖树如下:

当dependencies段中没有引入其他启动器的时候,实际上依赖树是空的:

这个demo项目的pom文件为:

POM文件加入:

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

截图:

这时候依赖树为:

3、使用Gradle构建(build)程序和管理依赖

Spring Boot兼容Gradle 5.x和6.x版本,4.10也支持,但是将来不再会支持。

也是使用包org.springframework.boot作为groupid。也可以声明一到多个启动器(Starter)。

Spring boot也提供 一个可选Gradle Plugin(插件)来简化依赖管理,并创建可执行的jar。

4、使用CLI构建(build)程序和管理依赖

Spring Boot CLI命令行工具能够快速使用Spring框架,支持Groovy脚本,类似于java但是简单很多。不必使用CLI来集成Spring Boot,但是它绝对是启动Spring的最快方法。

下载CLI的链接:

https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.2.2.RELEASE/spring-boot-cli-2.2.2.RELEASE-bin.zip

解压到后查看install.txt:

设置bin目录到path环境变量中:

(注:可以先设置环境变量SPRING_HOME,例如在Ubuntu下修改profile文件:

然后,执行source /etc/profile 更新环境变量,执行spring --verison检查版本。

检查是否安装正确:

也可以使用Scoop来安装和管理CLI和SDK(Linux下 使用SDKMan代替)。Scoop的官网如下:

具体使用实例:

(1)创建文件:app.groovy,内容如下:

(2)运行,命令如下:

测试:

5、可执行Jar文件

上面使用maven、gradle、CLI构建程序,可以把已编译的class及其依赖全部打包进入一个可执行的jar文件中,可执行jar文件(Executable jars)有时也成为“胖假包”(fat jars)文件。由于依赖一般也是jar文件,所以,这个可执行的jar文件实际上是嵌套jar文件。一般程序员采用uber-jar文件来发布应用程序,而uber在德语里面是over(超级)的意思,uber-jar就是打包所有的class及其依赖库文件进入单个文件中,这种方式的缺点是查看uber-jar里面的库文件并不方便,如果同一个文件名存在于多个jar文件中也会存在问题。但是,Spring boot提供了不同的方法来生成和管理嵌套jar文件。

使用mvn spring-boot:run并没有生成可执行jar包文件,检查target目录:

要生成可执行jar包文件,需要在POM文件中增加spring-boot-maven-plugin:

    <build>
        <plugins>
            <plugin>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-maven-plugin</artifactId>
	        </plugin>
	    </plugins>
	</build>

注意spring-boot-starter-parent中默认包含了如下配置代码,如果没有引入了spring-boot-starter-parent,则需要手工加入如下配置代码到artifactId之后:

				<version>2.2.2.RELEASE</version>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>

有关spring-boot-maven-plugin的详细信息参见2.1.13 Maven插件。

然后执行mvn package,如下:

再次查看target目录:

上图中demo-0.0.1-SNAPSHOT.jar就是可执行jar包文件。

使用jar tvf target/demo-0.0.1-SNAPSHOT.jar来查看这个可执行jar包文件内部的目录和文件,如下:

Target目录还有一个文件:demo-0.0.1-SNAPSHOT.jar.original,这个文件只有3k,很小,它是springboot在打包前产生的原始jar包文件,也可以使用jar tvf来查看内部文件结构:

可以看出这个original文件内部很简单,没有包含依赖,所以也可以称其为“瘦假包”文件(thin jars)。

使用java -jar来执行可执行jar包文件demo-0.0.1-SNAPSHOT.jar:

6、不需要父POM的Spring Boot应用程序

不是所有项目都继承自spring-boot-starter-parent POM,可以创建自己公司的标准父POM。

如果不想在parent段中使用spring-boot-starter-parent,仍然可以得到依赖管理的好处,依赖管理(dependency management)和插件管理(plugin management)不同,插件管理使用build标签下的plugins标签,依赖管理使用dependencyManagement标签。这时,需要使scope=import,如下:

前面的例子不允许通过使用一个属性来覆盖各个依赖项。要实现相同的结果,需要在spring-boot-dependencies条目之前添加一个条目。例如,要升级到另一个Spring Data发布版本序列,可以在pom.xml中添加以下元素:

7、应用配置文件

先加载application.yml,再加载Application.properties,properties的配置会覆盖yml的配置,也就是说yml的配置优先级低。

(1)mongodb配置

spring.data.mongodb.uri=mongodb://edison:123@localhost:27017/education

Mongo 2.x使用:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=edison
spring.data.mongodb.password=123
spring.data.mongodb.authentication-database=education

Mongo 3.0不支持:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017

(2)日志配置

#logging.pattern.console="%d - %msg%n"
logging.pattern.file='%d ***** %msg %n'
logging.path=d:/logs/
#logging.file='test.log'

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言