小编sag*_*rse的帖子

如何使用箭头符号( - >)创建受保护的方法?

当我们写下面的代码

Stream.of(1,2,3,4,5).filter(i -> (i%2 == 0)).map( i -> i*i );
Run Code Online (Sandbox Code Playgroud)

表达式i -> (i%2 == 0)i -> i*i将变成私有方法.

在我的用例中,编写了一个junit测试以确保没有方法是私有的(是啊,那是强制的),并且这些lambda表达式失败了.

有人可以提出一些建议,其中我不必更改junit来为lambda表达式添加一些排除,但是让这些表达式在内部创建受保护的方法吗?

java lambda protected access-modifiers java-8

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

Springboot:基于某些标志初始化 EmbeddedServletContainerFactory

我想在 spring boot 应用程序中实现 SSL,其中,我还想加密(出于测试目的,我用 base 64 对其进行编码)密钥库的密码,我将其作为 JVM 参数传递给 spring boot 应用程序。

密钥库的密码稍后将按以下方式用于解密(现在是 base 64 解码)并动态形成 EmbeddedServletContainerFactory。

@Bean
public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
    tomcatFactory.setSsl(createSsl());
    tomcatFactory.setPort(sslConfig.getHttpsPort());
    return tomcatFactory;
}
private Ssl createSsl() {
    Ssl ssl = new Ssl();
    try {
        ssl.setKeyStore("/path/to/keystore.pkcs12");
        ssl.setKeyStorePassword(new String(Base64.getDecoder().decode(sslConfig.getKeyPassword())));
        ssl.setKeyAlias(sslConfig.getKeyAlias());
    } catch (Exception e) {
        logger.error(e.getMessage());
    }
    return ssl;
}
Run Code Online (Sandbox Code Playgroud)

JVM 参数:

-Dtls.keyAlias=tomcat
-Dtls.key-store-password=cGFzc3dvcmQ=
Run Code Online (Sandbox Code Playgroud)

POJO 用于存储从 JVM 参数获取的别名和密码:

@Component
public class SSLConfig {

@Value("#{systemProperties['tls.keyAlias']}")
public String keyAlias;

@Value("#{systemProperties['tls.key-store-password']}")
private String keyPassword;

....getters …
Run Code Online (Sandbox Code Playgroud)

java ssl spring jvm-arguments spring-boot

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