我有一个Spring Boot微服务,该服务使用JDBCTemplate通过JDBC连接连接到多个数据库:
@Bean(name = "mysqlJdbcTemplate")
public JdbcTemplate jdbcTemplate(@Qualifier("mysqlDb") DataSource dsMySQL) {
return new JdbcTemplate(dsMySQL);
}
对于每个数据库,我都有不同的模板,然后rest模板控制器根据请求中传递的参数选择要使用的正确模板。 我阅读了文档,但是不清楚:
答案 0 :(得分:2)
Spring Boot将尝试为您的数据源加载可用的connection pool:
Spring Boot使用以下算法来选择特定的实现:
我们更喜欢HikariCP的性能和并发性。如果HikariCP可用,我们总是选择它。
否则,如果Tomcat池数据源可用,我们将使用它。
如果HikariCP和Tomcat池数据源都不可用,并且Commons DBCP2也可用,我们将使用它。 如果您使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa“启动器”,则会自动获得对HikariCP的依赖。
您可以通过设置spring.datasource.type属性来完全绕过该算法,并指定要使用的连接池。如果您在Tomcat容器中运行应用程序,这一点尤其重要,因为默认情况下会提供tomcat-jdbc。
其他连接池始终可以手动配置。如果定义自己的DataSource bean,则不会进行自动配置。
定义自己的bean的示例:
function changeNode(event){
ob =document.activeElement;
_str = ob.value;
ob.parentNode.removeChild(ob);
ob.parentNode.innerText = _str;
}
document.addEventListener("blur",changeNode,true);