首先创一个父项目,删除src目录(防止后续子项目受到影响)指定打包方式,springboot版本,springclound版本
添加相关依赖
<!--打包方式pom--> <packaging>pom</packaging> <!--springboot 版本--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEASE</version> </parent> <!--springclound版本--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR12</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
*创建一个子项目 (注册中心Eureka服务端) 添加相关依赖
<!-- eureka server --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>
*创建一个子项目(提供服务的项目providr) 添加相关依赖
<dependencies> <!--公共--> <dependency> <groupId>cn.kgc</groupId> <artifactId>hello-sc-2109-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!--test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--lombok--> <!-- <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>--> <!--代码生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.2</version> </dependency> <!--代码生成器模板--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> </dependencies>
在resouce下面建一个yml添加相关配置
server: port: 9999 spring: datasource: username: root password: 1234 url: jdbc:mysql:///db2109 jackson: date-format: yyyy-MM-dd time-zone: GMT+8 logging: level: cn.kgc: debug
用mybatis-plus自动生成代码
String urrl = "jdbc:mysql:///db2109"; String username = "root"; String password = "1234"; String author = "kgc"; String outputDir = "D:\\java2109\\hello-sc-2109\\hello-sc-2109-provider\\src\\main\\java"; String parent = "cn.kgc"; String moduleName = "emp"; String outputFile = "D:\\java2109\\hello-sc-2109\\hello-sc-2109-provider\\src\\main\\resources\\mapper\\"+moduleName; List<String> tables = Arrays.asList("emp"); String prefix = ""; FastAutoGenerator.create(urrl, username, password) .globalConfig(builder -> { builder.author(author) // 设置作者 // .enableSwagger() // 开启 swagger 模式 // .fileOverride() // 覆盖已生成文件 .outputDir(outputDir); // 指定输出目录 }) .packageConfig(builder -> { builder.parent(parent) // 设置父包名 .moduleName(moduleName) // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.xml, outputFile)); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude(tables) // 设置需要生成的表名 .addTablePrefix(prefix); // 设置过滤表前缀 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute();
删除entiity里面的emp,在common项目里面添加emp
在控制层里面用rest风格提供crud接口
*创建一个子项目(消费consmer)客户端
在pow里面添加先关依赖
<dependencies> <!-- web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- common --> <dependency> <groupId>cn.kgc</groupId> <artifactId>hello-sc-2109-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
在resource下面指定端口号
server: port: 8888 logging: level: cn.kgc: debug
在控制器里面注册一个RestTemplate 提供crud接口
例:
@GetMapping("/{id}") public Result<Emp> getEmpById(@PathVariable("id")Integer id){ return restTemplate.getForObject(URL_PREFIX + id, Result.class); }
添加一个子项目(公共类型common)
在pow里面添加相关依赖
<dependencies> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies>y
因直接导入mybatis-plus-starter会带入一些没必要的东西 所以导入mybatis-plus即可
在这里面提供entity 跟common.vo相关公共资源