小编imp*_*ble的帖子

跨两个数据源的事务管理(ChainedTransactionManager)-SpringBoot

为什么 SpringChainedTransactionManager被弃用了?Spring 是否提供任何替代库来支持多个事务管理器?

我的用例:- 我们正在构建一个连接到两个数据源(db1 和 db2)的 Spring Boot 应用程序,它对两个数据库(db1 和 db2)执行插入操作。我们的要求是这样的:插入 -> DB1 -> 成功插入 -> DB2 -> 错误回滚 DB1

目前,我们正在使用ChaninedTransactionManager并且它按预期工作,但我可以看到 lib 已被弃用。那么,只是想确保使用它是否安全,或者 Spring 是否提供了任何我们可以用来替代它的替代库?

spring spring-transactions spring-data spring-boot

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

具有该名称的 bean 已在类路径资源 [path] 中定义并且覆盖被禁用

我有 Spring Data Elaticsearch(使用传输客户端)和 ESTemplate 的 java 配置。这里有一些除外:

@Configuration
@EnableElasticsearchRepositories(basePackages = "subpackage-in-this-project")
@PropertySource("file:path-to-file")
public class ESConfig {

    @Bean
    ElasticsearchTemplate elasticsearchTemplate(Client client) {
        return new ElasticsearchTemplate(client);
    }

    @Bean
    Client client() { 
// configuration of the ES client
   }

}
Run Code Online (Sandbox Code Playgroud)

我有一个配置,可以在不同的项目中扩展上面的配置。

@Configuration
@ComponentScan("package-prefix-that-matches-packages-in-both-projects")
@EnableElasticsearchRepositories(basePackages = "subpackage-in-this-project")
@PropertySource("file:same-path-to-file-as-in-the-config-above")
public class ExtendedESConfig extends ESConfig {

    @Value("index-name")
    private String indexName;

    @Bean
    public String indexName() {
        return indexName;
    }
}
Run Code Online (Sandbox Code Playgroud)

在执行第三个 Spring Boot 应用程序时,它使用了对项目的依赖ExtendedESConfig,我得到了这个,我不太明白为什么会发生,从 2.0.5.RELEASE Spring 升级到 2.2.9.RELEASE 后开始发生引导版。


***************************
APPLICATION FAILED TO START …
Run Code Online (Sandbox Code Playgroud)

initialization exception spring-bean spring-boot spring-data-elasticsearch

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

基于 Gradle 的子项目在构建期间抛出“无法找到或加载主类worker.org.gradle.process.internal.worker.GradleWorkerMain”

我有一个基于 Gradle 的多项目。

问题出在其中一个子项目上。我在那里进行了一些测试,但里面的所有代码都被注释掉了。当我运行“构建”甚至“组装”(这不应触发测试阶段)时,我会在测试阶段收到这些错误。这种情况最近才开始发生,我无法真正确定是什么原因导致了这种情况。

Could not write standard input to Gradle Test Executor 1.
java.io.IOException: The pipe is being closed
    at java.base/java.io.FileOutputStream.writeBytes(Native Method)
    at java.base/java.io.FileOutputStream.write(FileOutputStream.java:354)
    at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
    at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
    at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:68)
    at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:53)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:834)
Could not write standard input to Gradle Test Executor 2.
java.io.IOException: The pipe is being closed
    at java.base/java.io.FileOutputStream.writeBytes(Native Method)
    at java.base/java.io.FileOutputStream.write(FileOutputStream.java:354)
    at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
    at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
    at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:68)
    at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:53)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) …
Run Code Online (Sandbox Code Playgroud)

java gradle classnotfoundexception

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