本文承接SpringBoot整合多数据源拆分进行整合Nacos,二者没任何关联,纯属阿坤偷懒的建立新项目了! Nacos的搭建就不教大家了,官方有详细的文档特别简单,下载解压启动完事!
一、需要修改的配置文件
二、修改配置文件
1.MybatisApp03
package com.zhongguancun; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource; @SpringBootApplication @NacosPropertySource(dataId = "ak.test", autoRefreshed = true) @MapperScan(basePackages = { "com.zhongguancun.test01.mapper" , "com.zhongguancun.test02.mapper"}) public class MybatisApp03 { public static void main(String[] args) { SpringApplication.run(MybatisApp03.class, args); } } MybatisMultilDataSourceController package com.zhongguancun.controller; import static org.springframework.web.bind.annotation.RequestMethod.GET; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.nacos.api.config.annotation.NacosValue; import com.zhongguancun.test01.service.UserServiceTest01; import com.zhongguancun.test02.service.UserServiceTest02; /** * 多数据源测试 * * @author 86187 * */ //@RestController @Controller @RequestMapping("config") public class MybatisMultilDataSourceController { @Autowired private UserServiceTest01 userServiceTest01; @Autowired private UserServiceTest02 userServiceTest02; @RequestMapping("/insertUserTest1") public Integer insertUserTest1(String name, Integer age) { return userServiceTest01.insertUser(name, age); } @RequestMapping("/insertUserTest2") public Integer insertUserTest2(String name, Integer age) { return userServiceTest02.insertUser(name, age); } // nacos @NacosValue(value = "${service.name:1}", autoRefreshed = true) private String serverName; // 手动导入RequestMethod.GET @RequestMapping(value = "/get", method = GET) @ResponseBody // boolean布尔值 public String get() { return serverName; } // @NacosInjected // private NamingService namingService; // // @RequestMapping(value = "/get", method = GET) // @ResponseBody // public List<Instance> get(@RequestParam String serviceName) throws NacosException { // return namingService.getAllInstances(serviceName); // } }3.application.properties
####datasource1 spring.datasource.test1.driver-class-name=com.mysql.jdbc.Driver spring.datasource.test1.jdbc-url=jdbc:mysql://192.168.200.222:3306/test01?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.test1.username=root spring.datasource.test1.password=123456 ####datasource2 spring.datasource.test2.driver-class-name=com.mysql.jdbc.Driver spring.datasource.test2.jdbc-url=jdbc:mysql://192.168.200.222:3306/test02?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.test2.username=root spring.datasource.test2.password=123456 ####nacos nacos.config.server-addr=192.168.200.223:8848 management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always4.pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zhongguancun</groupId> <artifactId>zhongguancun_springboot_mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- springboot-web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version><!--$NO-MVN-MAN-VER$--> <scope>provided</scope> </dependency> <!-- nacos --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.1</version> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-actuator</artifactId> <version>0.2.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> </project>三、验收
#通过api接口创建测试文件返回true成功! [root@node-3 ~]# curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=ak.test&group=DEFAULT_GROUP&content=service.name=csdnak" true[root@node-3 ~]#刷新Nacos界面多出一个ak.test配置文件 查看配置内容
访问:http://localhost:8080/config/get 返回csdnak,与输入数据一致则表示成功! 通过Nacos修改ak.test并->发布 访问:http://localhost:8080/config/get 页面刷新 实验完成!
是不是很简单呢!