spring 代码中,解决docker环境变量传递问题

1,docker变量



在docker中定义变量,使用echo $Value 能直接在命令行中显示,
这个使用spring可以直接注入到代码当中。
php中有方便的代码直接获得环境变量,但是java用起来就麻烦点。
直接使用spring的value就行了。

2,代码



比如一个spring的用户登录action。
里面用docker配置了一个默认的admin登录名称和密码。
在spring里面可以这样写:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserAction {

    @Value("${default.admin.userName}")
    private String userName;

    @Value("${default.admin.password}")
    private String password;

    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public ResultJson channelKey(@RequestParam(value = "userName", defaultValue = "") String userName,
                                 @RequestParam(value = "password", defaultValue = "") String password) {

        .....
    }

3,同时配置下spring



光是有这样的代码是不行的。
需要spring将配置注入进去。
spring配置:增加这样一行才行。

    <context:property-placeholder file-encoding="UTF-8"/>

4,总结



和之前写的两个文章:
【使用junit&spring修改系统的环境变量,解决docker程序测试问题】
http://blog.csdn.net/freewebsys/article/details/52781896
【 docker下开发,修改环境变量启动jetty】
http://blog.csdn.net/freewebsys/article/details/52782032
研究java项目如何迁移到docker环境项目。
修改的代码其实并不多。docker部署方便,节省资源扩展好。是未来的趋势。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51089323 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

时间: 2024-09-28 00:21:46

spring 代码中,解决docker环境变量传递问题的相关文章

电脑中配置好环境变量后还是无法打开AndroidStudio如何解决

  电脑中配置好环境变量后还是无法打开AndroidStudio如何解决          1.可能是JDK版本过低,AndroidStudio要求JDK版本在JDK7以上,不过这种情况较少发生; 2.安装的JDK可能是32位的,而AndroidStudio要求64位JDK,这个原因的可能性很大,可以检查一下JDK是多少位的; 3.如果是这个原因,则可以去官网下载最新64位版本; 4.最后按照安装的位置重新配置环境变量,然后再打开AndroidStudio就可以了.

docker~环境变量到底怎么用

docker已经用了两年多了,从开始的简单应用到现在的自动化部署,已经越来越感觉到它的威力,今天把Hitchhiker部署完成后,看到了它与.net core项目有个类似的地方,就是对于多环境部署的时候都用到了环境变量,Hitchhiker的docker-compose.yml里有对环境地址的设置(当前这个开源项目还有一些BUG,需要挂载一下/utils/index.js,去修改一下自己的端口,这个项目把它在了appconfig.json里了,默认8080,大叔认识不如直接写到环境变量里,根据具

NGINX和PHP之间的环境变量传递

昨天遇到的,想将IP访问转换成域名访问.则NGINX需要将相关的变量转换后传递给PHP. 网上有一系统的方法: 前面讲过该不该把信息写在服务器配置文件里?.通过php扩展hidef来define常量,这里介绍一下如何在nginx中设置$_SERVER变量值? 1.通过nginx的fastcgi_param来设置 在nginx配置文件中,可以在nginx总体的配置文件nginx.conf中,也可以在单独的网站配置环境中进行设置,如:www.test.com.conf 在配置环境server段loc

shell中crontab报环境变量找不到问题

1 发现问题一个shell脚本手动执行没有问题,但是配置到crontab中失效,报错环境变量找不到. 2 分析问题查看用户环境变量~/.bash_profile.系统环境变量/etc/profile发现环境变量存在,比较费解. 3 解决问题在.sh脚本中加入source /etc/profile或者source ~/.bash_profile引入环境变量即可解决. 4 其他注意点4.1 新创建的cron job不会立刻执行,至少要过2分钟才执行.若重启cron则立刻执行. 4.2 每条job执行

Mac OSX - 如何在bash_profile中配置全局环境变量

我们知道,在Linux操作系统下,配置环境变量是使用如下命令: vim /etc/profile 在OSX下,我们用如下命令打开环境变量配置文件: open ~/.bash_profile   典型的环境变量配置如下:   # java export JAVA_HOME = /home/myuser/jdk1.7.0_03 export PATH = $JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/

C#中怎么获到JS代码中的多个变量的问题?

问题描述 前边是用JScriptCodeProvider这个接口来动态执行JS的代码,但是JS中的eval只返回最后一个变量的值,我如果想要取前边的变量的值应该怎么做?如stringExpression="varres=0;varabc=1;";我想到res的值总是取不到...尝试把变量名res传到eval方法中也不行.原eval方法.privatestaticreadonlystring_jscriptSource=@"packageJSEvaluator{classJSE

环境变量-下载了dlink dir615d4 路由器的源码想编译,提问几个有关makefile中代码问题?

问题描述 下载了dlink dir615d4 路由器的源码想编译,提问几个有关makefile中代码问题? 如题,获取源码后,在主目录的makefile中有几行代码不认识,希望懂的朋友帮忙解释一下.这是第一次自己编译路由器源码,请问有什么需要注意的吗?始终编译没有通过,需要在终端中定义一些环境变量吗?之前编译的时候始终显示有几个环境变量没有定义,但是在config文档中发现那些变量已经定义了啊! makefile中一部分代码,如下: generate_def_value: ifneq ($(st

Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .

Visual Studio 2008  和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用. 可以在项目的"工具""属性页"对话框中任何接受字符串的位置使用这些宏.这些宏不区分大小写.  关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139     宏 说明 $(RemoteMachine) 在"调试

linux下env环境变量引起的crontab不生效解决办法

 crontab是linux中一个定时任务功能了,但是小编使用env环境变量之后迫害前的任务计划没效了,下面我们来看看如何解决env环境变量引起的crontab不生效问题.     有朋友说,他写了一个脚本来做计划任务定时备份数据库,但却一直都备份不成功,手动执行脚本也没有问题,而且在/var/log/cron日志里看到成功执行了,但就是没看到备份的数据库文件. 拿了ssh权限,登录之后,看了之后,和他所说的情况一样,脚本执行成功,但没有生成备份. 不过,查了一下发给root的邮件,看到了问题: