mysql 读写分离 boot_SpringBoot+MyBatis+MySQL读写分离

1 在发布模块打包,而不是父模块上打包

比如,以下项目目录:

c0e1e3b4b7ca

image.png

如果要发布 api 就直接在它的模块上打包,而不是在父模块上打包。

2 公共调用模块,打包类型设置为 jar 格式

公共模块,比如 common 和 model 需要设置 packaging 为 jar 格式,在 pom.xml 配置:

jar

3 发布模块打包类型设置为 war 格式

在发布的模块 pom.xml 中设置:

war

4 排除内置 tomcat

在发布的模块 pom.xml 中设置:

org.springframework.boot

spring-boot-starter-tomcat

provided

当设置 scope=provided 时,此 jar 包不会出现在发布的项目中,从而就排除了内置的 tomcat。

5 设置启动类

此步骤相当于告诉 tomcat 启动的入口在哪。需要在启动类添加如下代码:

@SpringBootApplication

public class ApiApplication extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(ApiApplication.class);

}

public static void main(String[] args) {

SpringApplication.run(ApiApplication.class, args);

}

}

6 如果使用拦截器一定要排除静态文件

比如我在项目中使用了 swagger,那我就需要排除 swagger 的静态文件,代码如下:

@Configuration

public class WebMvcConfig extends WebMvcConfigurationSupport {

@Override

protected void addResourceHandlers(ResourceHandlerRegistry registry) {

// 排除静态文件

registry.addResourceHandler("swagger-ui.html")

.addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");

}

// do something

}

7 先装载公共模块,再发布项目

如果发布的模块引用了本项目的其他公共模块,需要先把本项目的公共模块装载到本地仓库。

操作方式,双击父模块的 install 即可, install 成功之后,点击发布模块的 package 生成 war 包,就完成了项目的打包,如下图所示:

c0e1e3b4b7ca

image.png

8 部署项目

有了 war 包之后,只需要把单个 war 包,放入 tomcat 的 webapps 目录,重新启动 tomcat 即可,如下图所示:

c0e1e3b4b7ca

image.png

项目正常运行会在 webapps 目录下生成同名的文件夹,如下图所示:

c0e1e3b4b7ca

image.png

完成以上配置,就可以 happy 的访问自己发布的项目了。

可能出现的问题和解决方案

问题一:SpringBoot 配置了端口号影不影响程序发布?

答:不影响,配置的 server.port 会被覆盖,以 tomcat 本身的端口号为准,tomcat 端口号在 tomcat/config/server.xml 文件中配置。

问题二:发布报错,不能找到其他模块或项目中的公共模块,怎么办?

答:因为没有执行父节点 maven 的 install 操作,install 就是把公共模块放入本地仓库,提供给其它项目使用。

问题三:不能找到 SpringBoot 运行的 main 类,怎么办?

答:因为没有设置启动类导致的,设置方式:

pom.xml 配置启动类,配置 configuration>com.bi.api.ApiApplication 。

启动类继承 SpringBootServletInitializer 实现 SpringApplicationBuilder 方法,具体代码参考文中第五部分。

问题四:把 SpringBoot 项目部署到 Tomcat 7 一直提示找不到 xxx.jar 包?

答:这是因为 SpringBoot 版本太高,tomcat 版本太低的原因。如果你使用的是最新版的 SpringBoot,可以考虑把 tomcat 也升级为 tomcat 8.x+ 最新的版本,就可以解决这个问题。

ShardingSphere:SpringBoot2+MybatisPlus+读写分离+分库分表课程目标快速的掌握读写分离+分表的实战,即插即用适用人群IT从业人员,开发人员,Java从业者,互联网从业者,性能调优人群课程简介ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈。它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成,shardingSphere定位为关系型数据库中间件。 Sharding-JDBCSharding-JDBC是Sharding-Sphere的第一个产品,也是Sharding-Sphere的前身,是当当网开源的一个产品。定位为轻量级的Java框架,在Java的JDBC层提供额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。Sharding-JDBC可以通过Java,YAML,Spring命名空间和Spring Boot Starter四种方式配置,开发者可根据场景选择适合的配置方式。课程特色 本章节以尽量短的时间,为使用者提供最简单的ShardingSphere的快速入门。课程说明该课程属于系列课程,分为读写分离,分库不分表,不分库分表,分库分表,读写分离+分库分表共5个回合。本课程属于其中一个回合,请各位小哥哥们注意,课程的标题哦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值