[解決済み] Spring Bootのデータベース関連の自動設定をすべて無効にする
質問
Spring Bootを使用して2つのアプリケーションを開発しています。1つはサーバーとして機能し、もう1つはクライアントアプリです。しかし、両方とも同じアプリで、アクティブなプロファイルに基づいて異なる機能を果たします。Spring Bootの自動構成機能を使って、アプリケーションを構成しています。
クライアントアプリはデータベース接続を必要としないので、データベース関連の自動設定をすべて無効にしたいのですが。アプリケーションはデータベースとの接続を確立しようとせず、Spring DataやHibernateの機能を使おうともしません。データベースの自動設定の有効化または無効化は、条件付きで、アプリのアクティブなプロファイルに基づく必要があります。
それぞれのプロファイル用に2つの異なるapplication.propertiesファイルを作成することで、これを達成することができますか?
プロパティファイルに追加してみました。
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration\
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration\
org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration\
org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration
しかし、アプリケーションは依然として起動時にデータベースへの接続を試みます。これらの除外は、私の要件を達成するのに十分ですか?
解決方法は?
同じようなことをする方法は。
@Configuration
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@Profile ("client_app_profile_name")
public class ClientAppConfiguration {
//it can be left blank
}
サーバーアプリにも同様のものを書きます(excludeなし)。
最後のステップは、Spring Bootのメインクラスから自動設定を無効にすることです。
@SpringBootApplication
public class SomeApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SomeApplication.class);
}
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SomeApplication.class);
}
}
変更する。
@SpringBootApplication
に変更します。
@Configuration
@ComponentScan
これで仕事ができるはずです。さて、この例で除外した依存関係は不完全なものであるかもしれません。私にとっては十分でしたが、データベース関連のライブラリを完全に無効にすることがすべてかどうかはわかりません。念のため、以下のリストを確認してください。
ご参考になれば幸いです。
関連
-
[解決済み】Spring Data Maven Buildsの「プラグインの実行はライフサイクル構成でカバーされていません」を解決する方法
-
[解決済み] 復旧しようとする宛先のJMSメッセージリスナー起動者のセットアップに失敗しました。
-
[解決済み] spring-ws: エンドポイントマッピングが見つかりませんでした
-
[解決済み] SpringBootです。以下の候補からメインクラスを1つも見つけることができません。
-
SpringトランザクションとMySQLトランザクション詳細インタビュー
-
Tomcat server_A 子コンテナの起動に失敗しました。
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み】spring bootでコマンドラインからアクティブなプロファイルと設定場所を設定する。
-
[解決済み】IntelliJから実行するときにSpring Bootプロファイルを有効にするにはどうすればよいですか?
-
[解決済み】Spring Bootアプリケーションにコンテキストパスを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DispatcherServletの名前[duplicate]でURI...を持つHTTPリクエストのマッピングが見つからない。]
-
[解決済み] ユニットテストから ApplicationContext を読み込むのに失敗しました。FileNotFound
-
[解決済み] Spring Batchのステップスコープの仕組み
-
[解決済み] SpringBootです。以下の候補からメインクラスを1つも見つけることができません。
-
java.sql.SQLException を解決します。ユーザー 'root'@'localhost' (パスワード: YES を使用) のためのアクセスが拒否されました。
-
レスポンスボディとレスポンスエンテイティ
-
[解決済み】Spring @Autowire プロパティとコンストラクタの違いについて
-
[解決済み] Springセキュリティフィルタチェーンの仕組み
-
[解決済み] Spring bootアプリケーションでfield:RestTemplateを自動配線できない。
-
[解決済み] Spring MVC Test によるマルチパート POST リクエストの単体テスト