@Bean
public DataSource masterDataSource() throws IllegalArgumentException, NamingException {
JndiObjectFactoryBean bean = new JndiObjectFactoryBean();
bean.setJndiName("jdbc/test");
bean.setProxyInterface(DataSource.class);
bean.setLookupOnStartup(false);
bean.setResourceRef(true);
bean.afterPropertiesSet();
return (DataSource) bean.getObject();
}
tomcat 中context.xml配置
<Resource name="jdbc/test"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://locahlhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true"
username="supbaoxuan"
password="root"
testOnBorrow="true"
type="javax.sql.DataSource"
initialSize="3"
maxIdle="10"
maxTotal="15"
maxWaitMillis="30000"
minIdle="3"
validationQuery="select 'X'"/>
Spring Boot 2.0版本怎么玩呢?
打包成war包
通过上一篇文章,我们可以把配置放到tomcat/conf/context.xml里,那么在Spring Boot中,我们只要配置jndi指向的名称就可以了,对于这个点的,Spring Boot还是提供了相应的配置的,在application.properties添加如下配置:
spring.datasource.jndi-name=jdbc/test