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

简介: 1,docker变量在docker中定义变量,使用echo $Value 能直接在命令行中显示, 这个使用spring可以直接注入到代码当中。 php中有方便的代码直接获得环境变量,但是java用起来就麻烦点。 直接使用spring的value就行了。2,代码比如一个spring的用户登录action。 里面用docker配置了一个默认的admin登录

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

目录
相关文章
|
9月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
1088 3
|
8月前
|
人工智能 监控 Java
零代码改造 + 全链路追踪!Spring AI 最新可观测性详细解读
Spring AI Alibaba 通过集成 OpenTelemetry 实现可观测性,支持框架原生和无侵入探针两种方式。原生方案依赖 Micrometer 自动埋点,适用于快速接入;无侵入探针基于 LoongSuite 商业版,无需修改代码即可采集标准 OTLP 数据,解决了原生方案扩展性差、调用链易断链等问题。未来将开源无侵入探针方案,整合至 AgentScope Studio,并进一步增强多 Agent 场景下的观测能力。
3061 95
|
8月前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
9月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
505 13
|
9月前
|
安全 IDE Java
Spring 的@FieldDefaults和@Data:Lombok 注解以实现更简洁的代码
本文介绍了如何在 Spring 应用程序中使用 Project Lombok 的 `@Data` 和 `@FieldDefaults` 注解来减少样板代码,提升代码可读性和可维护性,并探讨了其适用场景与限制。
328 0
Spring 的@FieldDefaults和@Data:Lombok 注解以实现更简洁的代码
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1660 1
Spring boot 使用mybatis generator 自动生成代码插件
|
11月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
11月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
476 1
|
Java 调度 流计算
基于Java 17 + Spring Boot 3.2 + Flink 1.18的智慧实验室管理系统核心代码
这是一套基于Java 17、Spring Boot 3.2和Flink 1.18开发的智慧实验室管理系统核心代码。系统涵盖多协议设备接入(支持OPC UA、MQTT等12种工业协议)、实时异常检测(Flink流处理引擎实现设备状态监控)、强化学习调度(Q-Learning算法优化资源分配)、三维可视化(JavaFX与WebGL渲染实验室空间)、微服务架构(Spring Cloud构建分布式体系)及数据湖建设(Spark构建实验室数据仓库)。实际应用中,该系统显著提升了设备调度效率(响应时间从46分钟降至9秒)、设备利用率(从41%提升至89%),并大幅减少实验准备时间和维护成本。
600 0

热门文章

最新文章