2017-02-26 12 views
0

私はプロジェクトを複数のモジュールに分けて、coreはデータベースアクセス、ビジネスロジックなどを担当しています。graphql APIを提供するモジュールもあります。 graphqlモジュールの依存関係はcoreですが、coreモジュールのapplication.ymlファイルの構成はロードされていないようです。マルチモジュールプロジェクトのデータベース設定

セットアップ

コア - Application.class

package project.core; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.context.annotation.ComponentScan; 

@ComponentScan 
@SpringBootApplication 
public class Application { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

application.yml

spring: 
    application: 
    name: core # Identify this application 
    datasource: 
    url: jdbc:postgresql://localhost:5432/project 
    username: user 
    password: something 
    driver-class-name: org.postgresql.Driver 
    jpa: 
    database-platform: org.hibernate.dialect.PostgreSQLDialect 
    show-sql: true 
    hibernate: 
     ddl-auto: create 

logging: 
    level: 
    org.springframework: 
     web: TRACE 
     security: TRACE 

GRAPHQLモジュール - POM発

<dependencies> 
    <dependency> 
     <groupId>project</groupId> 
     <artifactId>core</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
</dependencies> 

Application.class

@EnableAutoConfiguration 
@ComponentScan({"project.core", "project.graphql"}) 
public class ProjectGraphQL { 
    public static void main(String[] args) throws Exception { 
     SpringApplication.run(ProjectGraphQL.class, args); 
    } 
} 

JPAとcore@ComponentScanに修正された問題を追加し、今私は、次のエラーメッセージが表示されます。

***************************アプリケーションが起動に失敗しました


説明:

データベースタイプの組み込みデータベースドライバクラスを判断できません

私は何が欠けていますか?私は設定をグラフの設定に複製することができると信じていますが、むしろすべてのデータベースをそのモジュールから守りたいと思います。

答えて

0

JpaRepositoriesEntitiesをスキャンして、@ComponentScanのパッケージを定義するだけでは十分ではありませんでした。

@SpringBootApplication 
@PropertySource(value = {"core-application.properties", "application.properties"}) 
@ComponentScan({"project.core", "project.graphql"}) 
@EnableJpaRepositories("project.core") 
@EntityScan("project.core") 
@EnableTransactionManagement 
public class ProjectGraphQL { 
    public static void main(String[] args) throws Exception { 
     SpringApplication.run(ProjectGraphQL.class, args); 
    } 
} 

私は.yml以上.propertiesに追加の設定や切り替えには本当に満足していないが、少なくとも、それが機能するようになりました。

0

このようにモジュールを混在させるべきではありません。 Spring Bootは、アプリケーションの実行時にコンポーネントスキャンだけでなく、より多くの処理を実行します。

分離モジュールを維持し、アプリケーションコンテキストの階層を使用します。私はapplication.propertiesファイルを検索するgraphqlアプリケーションを伝えるソリューション、(YMLは@PropertySourceでサポートされていない)、どこに見つけた

@EnableAutoConfiguration 
@ComponentScan 
public class ProjectGraphQL { 
    public static void main(String[] args) { 
     new SpringApplicationBuilder() 
      .parent(Application.class) 
      .child(ProjectGraphQL.class) 
      .run(args); 
    } 
} 
+0

ありがとうございますが、残念ながらエラーメッセージは同じです。 – KenavR

関連する問題