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

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

时间2025-05-05 03:27:33分类IT科技浏览3607
导读:本篇主要记录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
vue.js表单(Vue 中 forEach() 的使用)