小编Mus*_*afa的帖子

使用lombok从现有对象构建对象

可以说我有一个类似于lombok的注释类

@Builder
class Band {
   String name;
   String type;
}
Run Code Online (Sandbox Code Playgroud)

我知道我能做到:

Band rollingStones = Band.builder().name("Rolling Stones").type("Rock Band").build();
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以使用现有对象作为模板并更改其中一个属性来创建Foo对象?

就像是:

Band nirvana = Band.builder(rollingStones).name("Nirvana");
Run Code Online (Sandbox Code Playgroud)

我在lombok文档中找不到这个.

java lombok

65
推荐指数
2
解决办法
3万
查看次数

将 google login_hint 参数添加到 Spring oauth2 AuthorizationCode 请求

我一直在尝试将请求参数添加到 AuthorizationCode 请求中,spring oauth2 过滤器向 google 发出请求,作为 oauth2 身份验证流程的一部分。具体来说,我需要添加一个 login_hint 参数,以防止谷歌在已知电子邮件地址时引导用户选择他们的帐户。

这是我的初始配置:

@Configuration
@EnableOAuth2Client
@RequiredArgsConstructor
public class OAuthSecurityConfiguration extends WebSecurityConfigurerAdapter {
    private static final String LOGIN_PATH = "/oauth/login";

    private static final int OAUTH2_CLIENT_FILTER_ORDER = -100;

    static {
        SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);
    }

    private final OAuth2ClientContext oauth2ClientContext;

    private final OAuth2ClientContextFilter oAuth2ClientContextFilter;


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        final OAuth2ClientAuthenticationProcessingFilter ssoFilter = new OAuth2ClientAuthenticationProcessingFilter(LOGIN_PATH);
        ssoFilter.setRestTemplate(googleRestTemplate());
        ssoFilter.setTokenServices(tokenServices());
        ssoFilter.setAuthenticationManager(oAuth2AuthenticationManager());

        final OAuth2AuthenticationProcessingFilter clientFilter = new OAuth2AuthenticationProcessingFilter();
        clientFilter.setAuthenticationManager(oAuth2AuthenticationManager());
        clientFilter.setStateless(false);

//      @formatter:off
        http
            .csrf().disable()
            .cors().disable()
            .headers()
            .frameOptions().sameOrigin()
            .cacheControl().disable() …
Run Code Online (Sandbox Code Playgroud)

spring spring-security google-oauth spring-security-oauth2

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

测试容器 DockerComposeContainer 与 Docker Compose 版本 v2.0.0

我正在尝试将 testcontainers 与DockerComposeContainer. 我的 docker-compose.yaml 内容是这样的:

version: '3.8'

services:
  postgresql:
    image: postgres:13
    environment:
      POSTGRES_USER: ordering
      POSTGRES_PASSWORD: ordering
      POSTGRES_DB: ordering
Run Code Online (Sandbox Code Playgroud)

我使用以下 spring-boot 初始值设定项代码来声明容器:

  static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
      DockerComposeContainer<?> environment = new DockerComposeContainer<>(DOCKER_COMPOSE_FILE)
          .withExposedService(DB_SERVICE_NAME, DB_PORT)
          .withLocalCompose(true)
          .start();
}
Run Code Online (Sandbox Code Playgroud)

这曾经一直有效,直到最近 MacOS 上的 docker-desktop 更新为止。

现在它抛出以下错误:

Caused by: org.testcontainers.containers.ContainerLaunchException: Aborting attempt to link to container l2whc7cxqkzd_postgresql_1 as it is not running
    at org.testcontainers.containers.GenericContainer.applyConfiguration(GenericContainer.java:812)
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:363)
    ... 40 more
Run Code Online (Sandbox Code Playgroud)

如果我在抛出异常之前在代码中放置一个断点并检查正在运行的 docker 容器,我会看到一个名为 name 的容器l2whc7cxqkzd-postgresql-1 …

docker-compose spring-boot-test testcontainers

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

如何覆盖默认的activiti spring-boot配置

我正在研究Spring Boot应用程序并试图调整我的Activiti进程引擎设置.我已将Activiti依赖项添加到我的,pom.xml并且Boot能够BPMN正确启动和加载我的文件.

我现在要做的是覆盖一些Spring Boot默认值,例如MailServerHost设置.有没有办法在application.properties文件中这样做?我环顾四周但找不到列出这些属性的引用.我想我正在寻找像这样的Activiti的性质.

java activiti spring-boot

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