/**
* 嵌入式Tomcat容器设置JNDI
*
* @return Tomcat容器工厂
*/
@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
tomcat.enableNaming();
return super.getTomcatEmbeddedServletContainer(tomcat);
}
@Override
protected void postProcessContext(Context context) {
if (StringUtils.hasText(jndiName)) {
String driverClsName = getDriverClassName();
ContextResource resource = new ContextResource();
resource.setAuth("Container");
resource.setType(DataSource.class.getName());
resource.setProperty("maxActive", "100");
resource.setProperty("maxIdle", "30");
resource.setProperty("maxWait", "10000");
resource.setName(jndiName);
resource.setProperty("driverClassName", driverClsName);
resource.setProperty("url", getUrl());
resource.setProperty("username", getUsername());
resource.setProperty("password", getPassword());
resource.setProperty("factory", DataSourceFactory.class.getName());
// 设置数据库导入备注
if (DatabaseDriver.MYSQL.getDriverClassName().equals(driverClsName)) {
resource.setProperty("connectionProperties",
"characterEncoding=utf8;remarks=true;useInformationSchema=true");
} else {
resource.setProperty("connectionProperties", "remarksReporting=true");
}
context.getNamingResources().addResource(resource);
}
((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
}
};
}
以上为设置tomcat jndi配置和设置tomcat扫描Manifest配置