Springブートアプリケーションがあり、Tomcat 7にWARとしてデプロイしたいと考えています。この一環として、構成をWARから除外して、同じ戦争をステージングサーバーとプロダクションサーバーにデプロイし、それをピックアップできるようにする必要があります。設定によるmysql接続。
このために、TomcatインスタンスでJNDIデータソースとして構成されたmysql接続を使用するようにSpring Bootアプリを構成します。
春のブーツはこれを行うことができますか?
あるいは、xmlベースの構成に頼らずに、Spring 4でこれを簡単に実行できます。
@Bean
public DataSource dataSource() {
JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
DataSource dataSource = dataSourceLookup.getDataSource("jdbc/apolloJNDI");
return dataSource;
}
JndiDataSourceLookupがこの部分を追加するconvertJndiNameを内部的に呼び出すため、「Java:comp/env /」は必要ありません。他のクラスでは、完全なパスを設定する必要があります。
Spring Boot 1.2以降を使用している場合、これは簡単になりました。これをapplication.propertiesに追加するだけです
spring.datasource.jndi-name=Java:comp/env/jdbc/my_database
これが私がやったことです。
以下をApplication.Java
に追加します
@Bean
public DataSource dataSource() {
JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
DataSource dataSource = dataSourceLookup.getDataSource("Java:comp/env/jdbc/mysqldb");
return dataSource;
}
次に https://spring.io/guides/gs/accessing-data-jpa/ の例に従って、TransactionManager
およびHibernate固有のプロパティを設定します。