我需要查询数据库的数量。数据库的数量可能会有所不同。CrudRepository项目列表
有能力通过列表来迭代它们看起来很方便。
这是一个好主意,还是至少可以有一个存储库列表连接到不同的数据源或有另一种更好的方法?我已阅读How to use 2 or more databases with spring? 。为了实现它,我必须知道数据库的数量,但它可能会有所不同。
我想:
@Entity
public class Member{}
public interface MemberRepository extends CrudRepository<Member, Long> {
}
@Component
@ConfigurationProperties("myClass")
public class MyClass {
@Autowired
private MemberRepository memberRepository;
}
@Component
@ConfigurationProperties("myClassHub")
public class MyClassHub {
@Autowired
private List<MyClass> myClasses;
}
这看起来合乎逻辑的我。但我不明白如何配置这个列表项。 这种配置不起作用。
application.yml
myClassHub:
myClasses:
-
spring:
datasource:
url: jdbc:mysql://url
username: username
password: password
-
spring:
datasource:
url: jdbc:mysql://url
username: username
password: password
在pom.xml中,我有:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
我也想过用AbstractRoutingDataSource,但类的架构将变得过于复杂,不符合逻辑。
我有一个建议,尝试SimpleJpaRepository。 (https://stackoverflow.com/questions/22116005/how-to-create-jpa-repository-dynamically-inside-a-class)。看起来很有希望。 –