私は約15のデータベースを含んでいます(各データベースには5〜20のテーブルがあります)。複数のMySQLデータベースを起動する
私はいくつかのstackoverflow posts、baeldungなどを読んでいます。これは、複数のデータソースについてすべてのことを述べていますが、Postgres/MySQL、またはMySQL/H2を使用しているようです。私はいくつかのデータベースを使用できるようにMySQLのためのスケーラブルなソリューションを探しています。
私は春には少し新しいですが、Javaには少し戸惑っていますので、何か不足しているかもしれません。これは私のプロパティファイルの例です。
application.properties
spring.datasource.database1.db.url=jdbc:mysql://localhost:3306/database1
spring.datasource.database1.db.username=user
spring.datasource.database1.db.password=password
spring.datasource.database1.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.database1.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.database1.jpa.show-sql=true
spring.datasource.database1.jpa.generate-ddl=true
spring.datasource.database1.jpa.hibernate.ddl-auto=update
spring.datasource.database2.db.url=jdbc:mysql://localhost:3306/database2
spring.datasource.database2.db.username=user
spring.datasource.database2.db.password=password
spring.datasource.database2.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.database2.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.database2.jpa.show-sql=true
spring.datasource.database2.jpa.generate-ddl=true
spring.datasource.database2.jpa.hibernate.ddl-auto=update
spring.datasource.database3.db.url=jdbc:mysql://localhost:3306/database3
spring.datasource.database3.db.username=user
spring.datasource.database3.db.password=password
spring.datasource.database3.db.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.database3.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.database3.jpa.show-sql=true
spring.datasource.database3.jpa.generate-ddl=true
spring.datasource.database3.jpa.hibernate.ddl-auto=update
私は、プロパティのJPAの部分が重複していることを感じるが、私は設定ファイルでそれらを再利用しようとしたとき、それは訴えとコンパイルされないでしょう。 @ConfigurationPropertiesを再利用する方法がわかりません。
マイファイル構造順番にたとえばなどのモデルのそれぞれのフォルダ、コントローラ、リポジトリを、持っていると思われる、各データベース用のフォルダが含まれます
Project │ pom.xml │ manifest.yml │ └───src └───main └───java | └───com | └───myorg | | Application.java | └───config | | | DatabaseConfig.java | | | └───databases | └───database1 | | | Database1Config.java | | └───models | | | | TableA.java | | | | TableB.java | | | | TableC.java | | | | | └───controllers | | | | TableAController.java | | | | TableBController.java | | | | TableCController.java | | | | | └───repositories | | | TableARepository.java | | | TableBRepository.java | | | TableCRepository.java | | | └───database2 | | Database2Config.java | └───models | | | TableD.java | | | TableE.java | | | TableF.java | | | └───controllers | | | TableEController.java | | | TableDController.java | | | TableFController.java | | | └───repositories | | TableDRepository.java | | TableERepository.java | | TableFRepository.java | └───resources | application.properties
基本的に、これは何ですか私はファイル構造として、テーブルで将来的に成長することを知りたいと思っています。もっと理にかなっているものがあれば、私はすべて耳です。
誰かが私が必要としていることを説明するドキュメントへのリンクを提供できれば、それは素晴らしいことです。私は誰かが私のためにコーディングするのを探しているわけではなく、ちょうど正しい方向を指す必要があります。
もっと詳しい説明が必要な場合は教えてください。ありがとう!
プロパティはデータベースの1つのインスタンスのみをサポートします。複数のインスタンスが必要な場合は、独自にBeanを作成する必要があります。この回答を確認するhttp://stackoverflow.com/a/30344608/5343269 – 11thdimension