if required to decalare additional configuration from dependancy jar modules use component scan
@SpringBootApplication(scanBasePackages = {"au.com.myserver.app.*", "au.com.otherApp.service.*"})
if required to exclude all datasource autoconfiguration
@SpringBootApplication(scanBasePackages = {"aa.bb.cc.*", "aa.bb.cd.ee.*"}, exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
//or can specify on application.properties or application.yaml
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration, org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
creating Tomcat JNDI datasources
@Configuration@Profile({ "tomcat" }) public class TomcatWebConfiguration { @Value("${spring.datasource.app.jdbc-url}") private String appDataSourceUrl; @Value("${spring.datasource.app.username}") private String appDataSourceUsername; @Value("${spring.datasource.app.password}") private String appDataSourcePassword; @Value("${spring.datasource.app.jndi-name}") private String appDataSourceJndi; @Bean public TomcatServletWebServerFactory tomcatFactory() { return new TomcatServletWebServerFactory() { @Override protected TomcatWebServer getTomcatWebServer(org.apache.catalina.startup.Tomcat tomcat) {tomcat.enableNaming();return super.getTomcatWebServer(tomcat);} @Override protected void postProcessContext(Context context) { // contextContextResource resource = new ContextResource();resource.setName(appDataSourceJndi);resource.setType(DataSource.class.getName());resource.setProperty("url", appDataSourceUrl);resource.setProperty("username", appDataSourceUsername);resource.setProperty("password", appDataSourcePassword); context.getNamingResources() .addResource(resource);} };} }
for SprintBootTest use following to disable autoconfigure
@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT, properties = {"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration"})
No comments:
Post a Comment