springboot部署测试环境和生产环境

开发环境

IDEA
Maven

配置文件

由于springboot会默认加载application配置文件,所以我们需要在application修改配置参数。
以下为application.yml文件格式

spring
  profiles
    active: dev

这段配置代码的意思是,spingboot会加载项目中的名字为application-dev的配置文件。
所以如果需要在打包时打包生产环境的包,那么创建一个名为application-prod.yml的配置文件,然后修改application.yml如下:

spring
  profiles
    active: prod

这样就可以区分打包生产环境和测试环境了

Maven

由于每次打包都需要手动修改application配置文件,会很麻烦并且不安全,并且大多数项目都是使用maven,所以集成maven可以使我们方便很多。

先配置pom.xml:

<!-- 在maven中添加如下配置 -->
<profiles>
        <profile>
            <!-- 测试环境 -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境 -->
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
    </profiles>

对这段代码做下说明,首先在maven中配置了两个环境的配置文件,一个测试环境test,一个生产环境prod;
其中
<profiles.active></profiles.active>是变量的key,test是变量的value

接下来在application中引用该变量

spring
  profiles
    active: @profiles.active@   <!-- 这里引用的是pom.xml中配置的key -->

问题

1.=='@' that cannot start any token. (Do not use @ for indentation)
在本地启动该项目时有时候会报如下错误

found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 4, column 11:
        name: @profiles.active@

 意思是识别不了@profiles.active@这个变量,这是因为这个变量没有被替换成我们需要的参数,如test,prod等,所以在本地启动时要加上参数启动,这样springboot会自动替换掉这个变量。

作者使用的是idea,所以启动springboot时在右上Edit Configurations-->Active Profiles 增加一个参数,参数值为你需要运行的环境名称,如dev

但是好像并没有什么用!!!

我的解决办法是:在application.yml中的active: @profiles.active@'改成active: '@profiles.active@' ,是的加个单引号。

spring
  profiles
    active: '@profiles.active@'   <!-- 这里引用的是pom.xml中配置的key -->

当然,网上好像还有其它的解决办法:(下面的两种方法对我来说没用)

《SpringBoot中出现'@' that cannot start any token. (Do not use @ for indentation)....》

《SpringBoot的yaml配置文件,提示Do not use @ for indentation》

那么,如何部署阿里切换启动:

java -jar -Dspring.profiles.active=prod XXXX.jar

你是技术宅么?那就加入我们吧~本博主不一定长期在线,可以进群大家一起解决问题~

商务合作@群主,谢谢!

欢迎加入 CSDN技术交流群 一起学习交流~

课程简介 这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。 适用人群 刚刚毕业的学生 想提高职场竞争力 想学从零开发SpringBoot项目 想提升SpringBoot项目开发技术 想学习SpringBoot项目架构技术 想学习企业级项目开发技术 就是想学习SpringBoot开发 能学到什么 从0开发一个类似企业级项目 学会能做出市面上90%通用API 快速增加1到2年实际开发经验 刚毕业学完后能找到满意的工作 已经工作学完后最高涨薪30% 课程信息 全课程目前是82章,155小时,每节视频都经过精心剪辑。 在线学习分辨率最高1080P 课程知识点 1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制 12~16章:搭建开发环境,快速入门SpringBoot框架 17~20章:快速入门MySQL数据库 21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置 31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能 42~48章:阿里云OSS,话题,MyBatis-plus,应用监控 49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存 54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索 59~61章:商城,集成支付宝SDK,支付宝支付 62~64章:常用哈希和加密算法,接口加密和签名 65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档 68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书 70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析 74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS 81~82章:增强和重构项目,课程总结,后续学习计划
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页