小编dee*_*ejo的帖子

将env变量传递给DOCKER Spring Boot

我有一个SpringBoot应用程序,它的Dockerfile如下.我有针对不同环境的application.properties,例如local/dev/qa/prod.当我在IDE中本地运行应用程序时,我在VM选项中传递-Dspring.profiles.active = local,以便它加载application-local.properties.为了作为docker容器运行,我构建了一个包含所有application.properties的映像.即它只是所有环境的SAME泊坞窗图像.

当我在一个环境中运行图像时,我想以某种方式让SpringBoot理解它的dev env,所以它必须加载application-dev.properties.我使用AWS ECS来管理容器.

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/sample-test-sb-sample-app-1.0-exec.jar app.jar
EXPOSE 8080
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
Run Code Online (Sandbox Code Playgroud)

spring environment-variables docker spring-boot dockerfile

8
推荐指数
2
解决办法
1万
查看次数

Logback - logback.xml 中的布局和模式

我使用 logback 和 slf4j 来登录 Spring Boot 应用程序。我创建了一个自定义布局类,因为所有日志语句都将包装为 json。我已配置 logback-spring.xml 如下所示以采用自定义布局。有用!

问题是我无法应用该模式。只有布局(或)模式起作用。我想要的是始终记录在日志中,转到布局类,然后在记录之前应用模式。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${user.home}/logs/sample.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${user.home}/logs/sample_%d{yyyy-MM-dd}.%i.log</fileNamePattern>

        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <!-- how many days to keep the files -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="com.test.test.payment.core.logging.SampleLogLayout" >
        </layout>
    </encoder>
    *<!-- <encoder>
        <charset>UTF-8</charset>
        <Pattern>{"@timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}", "priority": "%p", "application": "payment",
            "class": "%C", "file": "%F:%L", "payload": %m }%n
        </Pattern>
    </encoder>-->*
</appender>
Run Code Online (Sandbox Code Playgroud)

这是SampleLogLayout课程:

public class SampleLogLayout extends LayoutBase<LoggingEvent> {

    @Override
    public String doLayout(LoggingEvent event) {

        String renderedMessage = event.getMessage(); …
Run Code Online (Sandbox Code Playgroud)

java logback spring-boot

5
推荐指数
1
解决办法
1万
查看次数

Java 8 Streams API - 列表到映射 - 合并键

我有一个 Fruit 对象列表,其中每个 Fruit 都有一个'name''desc'。此水果列表将包含'name'不同的重复项'desc'i.e.

{"apple","its red"},{"banana","its yellow"},{"apple", "its hard"}
Run Code Online (Sandbox Code Playgroud)

现在,我想使用 Java 8 Streams API 迭代此 Fruits 列表,并将它们映射到 MAP 中,使得键为“name”且不得包含重复项。

输出应该是:

key - "apple", value - List of desc i.e.  {"its red","its hard"}
key - "banana", value - {"its yellow"}
Run Code Online (Sandbox Code Playgroud)

请指导。

merge hashmap java-8 java-stream

0
推荐指数
1
解决办法
817
查看次数