
springboot不使用内置tomcat
由于不打算使用springboot内置的tomcat,所以先移除springboot内置tomcat。
- 修改打包形式
<packaging>war</packaging>
- 移除嵌入的tomcat插件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- 继承SpringBootServletInitializer重写configure方法
@SpringBootApplication
public class ExportApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ExportApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
tomcat配置数据源
- 配置tomcat/conf/server.xml文件
<Service name="Catalina">
<Context path="jdbc/1" reloadable="true"></Context>
<Context path="druid/1" reloadable="true"></Context>
- 配置tomcat/conf/context.xml文件
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Resource name="jdbc/1"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://IP1:3390/education"
username="root"
password="pwd1"
/>
<Resource name="druid/1"
factory="com.alibaba.druid.pool.DruidDataSourceFactory"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://IP2:3379/education"
username="root"
password="pwd2"
/>
</Context>
- tomcat的lib下加入数据库驱动
mysql-connector-java-8.0.29.jar
druid-1.2.5.jar
springboot2.x使用jndi单数据源,整合mybatisplus查询数据库
- 导包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<exclusions>
<!-- 使用JNDI,则使用默认使用DBCP连接池,故排除Hikari连接池 -->
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
- application.yml配置
spring:
datasource:
jndi-name: jdbc/1
mybatis-plus:
# xml文件路径
mapper-locations: classpath:mapper/*.xml
# 实体类路径
type-aliases-package: com.sunpy.simpleweb.po
configuration:
# 驼峰转换
map-underscore-to-camel-case: true
# 是否开启缓存
cache-enabled: false
# 打印sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 全局配置
global-config:
# 数据库字段驼峰下划线转换
db-column-underline: true
- 查询数据库
@GetMapping("/index")
public ResultModel<Object> index() {
ResultModel<Object> resultModel = new ResultModel<>();
resultModel.setMsg(enterpriseParamModel.getEnv());
resultModel.setTime(TimeUtil.getNowTime());
QueryWrapper qw = new QueryWrapper<>();
List<Teacher> teacherList = teacherMapper.selectList(qw);
resultModel.setRes(teacherList);
return resultModel;
}

springboot2.x使用jndi多数据源,整合mybatisplus查询数据库
- 导包
<!-- mybatis-plus 多数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.0</version>
</dependency>
- application.yml文件
spring:
datasource:
dynamic:
datasource:
master:
jndi-name: jdbc/1
slave:
jndi-name: druid/1
mybatis-plus:
# xml文件路径
mapper-locations: classpath:mapper/*.xml
# 实体类路径
type-aliases-package: com.sunpy.simpleweb.po
configuration:
# 驼峰转换
map-underscore-to-camel-case: true
# 是否开启缓存
cache-enabled: false
# 打印sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 全局配置
global-config:
# 数据库字段驼峰下划线转换
db-column-underline: true
切换druid查询数据库:
@DS("slave")
@GetMapping("/index2")
public ResultModel<Object> index2() {
ResultModel<Object> resultModel = new ResultModel<>();
resultModel.setMsg(enterpriseParamModel.getEnv() + " druid/1");
resultModel.setTime(TimeUtil.getNowTime());
QueryWrapper qw = new QueryWrapper<>();
List<Teacher> teacherList = teacherMapper.selectList(qw);
resultModel.setRes(teacherList);
return resultModel;
}

网友评论