2017-05-25 8 views
0

私は2つの春のブートアプリケーションがあります。 1つは、コンポーネントを任意のスプリングブートプロジェクトに再利用するためのSDKとして使用されます.2番目のプロジェクトは、SDKプロジェクトを使用し、そのコンポーネントを使用します。基本的な考え方です。依存関係を取得する際の問題は例外ではありません。春のブートjpaプロジェクト別のプロジェクトにサービスを紹介

SDKプロジェクトにはいくつかのエンティティがあり、それらのリポジトリとservices.itは別のDBを持つ2番目のプロジェクトを参照するため、application.propertiesにはDB設定がありません。だから私は2番目のプロジェクトで2 DBを設定している。私は

@Autowired 
    private SDKUserService sdkUserService; 

それは例外を見つけていない依存関係が表示されますようにプロジェクトの第2コントローラ上のSDKサービスをautowireすると

DBCONFIGは

sdk.datasource.driver-class-name = com.mysql.jdbc.Driver 
sdk.datasource.url = jdbc:mysql://localhost:3307/organization 
sdk.datasource.username=root 
sdk.datasource.password=password 



hrms.datasource.driver-class-name = com.mysql.jdbc.Driver 
hrms.datasource.url = jdbc:mysql://192.168.0.188:3306/hrms 
hrms.datasource.username = root 
hrms.datasource.password = hY6hvg 

スニペット。

以下は、SDKプロジェクトのSDKユーザーサービスです。

@Service 
    public class SDKUserServiceImpl implements SDKUserService { 
    // 
    } 

enter image description here enter image description here

+0

あなたのディレクトリ構造を示す画像を更新することができます。 –

+0

@ramvinothが更新されました。 – boycod3

答えて

0

あなたの両方のプロジェクトは、異なるアプリケーションコンテキストをmaintaingています。 @Autowiredを使用してBeanコンテキストからクラスにアクセスすることができません。これを達成するためには、以下のようにxmlまたはjava構成ファイルのいずれかを実行するだけで、両方のプロジェクトクラスを単一のコンテキストで維持する必要があります。

<import resource="classpath:projectBweb.xml"/> 

または

@Import({ projectB.class }) 
+0

どのように私はコントローラ – boycod3

+0

のサービスを呼び出すのですか?あるプロジェクトのxml設定ファイルを他のSpring Beanにインポートした場合、両方のプロジェクトのすべてのクラスのインスタンスを持つ単一のコンテキストを管理します。あなたは@Autowiredを使って呼び出すことができます –

+0

データベース接続のためにリポジトリが作成されていないというのが本当の問題です。接続の詳細は、SDKプロジェクトではなく、2番目のプロジェクトにあります。 – boycod3

関連する問題