首页IT科技springboot如何打包部署服务器(SpringBoot配置与打包基础)

springboot如何打包部署服务器(SpringBoot配置与打包基础)

时间2025-08-04 17:52:04分类IT科技浏览4924
导读:本篇主要记录SpringBoot使用的基础配置 SpringBoot Maven配置...

本篇主要记录SpringBoot使用的基础配置

SpringBoot Maven配置

SpringBoot maven依赖关系

我们创建springboot项目后              ,会发现项目的pom文件都会继承自spring-boot-starter-parent这个配置                     ,打开这个父配置文件        ,会发下它又继承自spring-boot-dependencies这个配置文件              。

spring-boot-dependencies中使用<dependencyManagement>已经引入了大量又springboot官方测试稳定的依赖包       ,因此我们在自己的springboot项目中使用这里面定义的依赖包时                     ,可以不写版本信息                     。

starter的含义

springboot项目引入的starter类型的依赖               ,如spring-boot-starter-web       ,就是一个包含了所有web开发需要使用的依赖包的配置文件        。根据maven的依赖传递规则                     ,我们不需要再手动引入各种依赖包       。这样就实现了快速的配置                     。

针对springboot官方提供的各种starter               ,命名方式一般是spring-boot-starter-xxx,而对于第三方提供的starter                     ,命名方式一般是xxx-spring-boot-starter               。

SpringBoot配置

配置写在哪

resource\application.properties是SpringBoot默认使用的配置文件                      ,当然SpringBoot还支持yml,yaml这两种格式定义的配置文件       。

当同时存在这三种配置文件时              ,配置的优先级是

properties > yml > yaml

配置怎么用

使用@Value @Component public class Foo { @Value("${server.port}") private int port; @Value("${server.host}") private String host; }

在使用Spring管理的Bean中                      ,可以使用@Value注解修饰属性        ,则可以向该属性中注入数据              ,如果在@Value中使用SpEL表达式                     ,则可以从配置文件中注入对应的配置                     。

使用Environment @Component public class Foo { @Autorwired private Environment env; public static void main(String[] args) { System.out.pringln(env.getProperty("server.port")); } }

让Spring自动注入Environment对象        ,则可以从中获取全部配置               。

将一组配置封装到一个对象中 @Component @ConfigurationProperties("datasource") @Data public class MyDatasource { private String driver; private String url; private String username; private String password; }

定义这样一个Bean       ,交给Spring管理                     ,通过使用@ConfigurationProperties("datasource")注解               ,告诉了Spring将配置文件中datasource指定的这一组配置注入到对应的属性中。

datasource: driver: com.xxx.yyy url: jdbc:mysql://xxx:3306/test username: foo password: bar

后续就可以在需要使用的地方将MyDatasource注入进来       ,就可以通过访问属性获取到配置值                     。

SpringBoot引导程序

注解了@SpringBootApplication的类是SpringBoot程序启动的引导类                     ,其中的main方法会运行Spring容器               ,加载引导类所在包以及子包的所有Bean                      。

package com.leo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HelloSpringBootApplication { public static void main(String[] args) { SpringApplication.run(HelloSpringBootApplication.class, args); } }

SpringBoot程序打包与运行

打包插件

可以使用mvn package来运行这个项目的打包程序,这个过程会从上到下依次执行package之前的所有生命周期。

如果希望打包好的jar包可以直接使用java -jar运行                     ,需要在pom中配置如下的插件              。否则打包好的jar包中META-INF/MANIFEST.MF文件中会缺少Main-Class:的配置                      ,导致无法使用-jar运行                      。

使用了如下插件后,除了打包项目的代码              ,还会将程序依赖的所有jar包打进项目包中                      ,同时还会有SpringBoot自己的类加载器等        。

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

临时配置

如果我们要对一个已经打好包的程序去修改运行时的配置        ,我们不需要修改程序的配置文件然后重新打包              ,只需要在启动程序时增加命令行参数                     ,例如

java -jar fake-server.jar --server.port=8888

可以将fake-server.jar启动时的端口临时设置为8888              。配置覆盖的优先级可以查看官方文档                     。

配置文件分级

1级        ,jar包同层file:config/application.yml 【最高】 2级       ,jar包同层file: application.yml 3级                     ,classpath: config/application.yml 4级               ,classpath: application.yml 【最低】

多层级配置文件间的属性采用叠加并覆盖的形式作用于程序        。

自定义配置文件

如果不想使用默认的application.yml作为配置文件       ,可以自定义其他名字                     ,例如myconfig.yml       。启动时               ,需要添加命令行参数指定该文件为配置文件                     。

java -jar fake-server.jar --spring.config.name=myconfig java -jar fake-server.jar --spring.config.location=/home/xxx/myconfig.yml java -jar fake-server.jar --spring.config.location=classpath:myconfig.yml

多环境配置

配置文件可以根据开发              、测试                     、生产等不同的环境,定义多份                     ,启动时可以选择某个环境进行启动               。可以在主配置文件中指定当前生效的配置文件的后缀                      ,主配置文件中一般设置公共配置,环境配置文件中设置独立的或与公共配置有差异的配置       。

主配置文件application.yml spring: profiles: active: dev 生产环境配置application-pro.yml server: port: 80 开发环境配置application-dev.yml server: port: 81 测试环境配置application-test.yml server: port: 82

我们开可以将配置文件拆分的更细              ,例如application-devDB.yml只配置数据库相关的配置                      ,application-devMVC.yml只配置MVC相关的配置                     。那么可以使用下面的方法将配置加载进来               。这种配置方式        ,配置文件的加载顺序是devDB, devMVC, dev              ,所以dev中的属性会覆盖其他两个配置中的属性。

# 主配置文件application.yml spring: profiles: active: dev include:devDB, devMVC

还可以使用如下方式对拆分的配置进行分组                     。这样指定激活dev环境时                     ,会同时加载dev分组的其他配置                      。注意        ,这里加载配置的顺序是dev, devDB, devMVC。

# 主配置文件application.yml spring: profiles: active: dev group: "dev": devDB, devMVC "pro": proDB, proMVC
声明:本站所有文章       ,如无特殊说明或标注                     ,均为本站原创发布              。任何个人或组织               ,在未征得本站同意时       ,禁止复制        、盗用       、采集                     、发布本站内容到任何网站               、书籍等各类媒体平台                      。如若本站内容侵犯了原著者的合法权益                     ,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
美国vps租用(租用美国大带宽服务器好处有哪些) 苹果cms模板安装教程(苹果CMS安装及配置详细教程)