在上一节搭建的项目基础上,在父项目spring-cloud的pom文件中添加mapper启动器和mysql驱动的配置,如果项目中使用lombok也可以引用,这里需要注意的是lombok引用的配置不在dependencyManagement结构中,这时为什么呢,因为有些包需要在多个子项目中使用为了统一版本号,确保各项目引用包时一致的,也为了方便以后各jar包的升级,因此配置在dependencyManagement,这样只要修改dependencyManagement中jar包的版本号,其它子项目引用的地方都会因此而修改,而不需要到处的找jar包引用来一一修改,当然如果有特殊的子项目需要使用特点的版本只需要在dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。lombok一般只会在表生成的entity对象中使用因此不会出现个子项目的引用,因此只要写在不包括在dependencyManagement的dependencies中就可以了,这样子项目就继承,当然也可以不写在父项目,直接写在表生成的entity对应的子项目的配置文件上也是可以的
<?xml version="1.0" encoding="UTF-8"?><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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.ydgroupId> <artifactId>spring-cloudartifactId> <packaging>pompackaging> <version>1.0-SNAPSHOTversion> <modules> <module>eureka-servermodule> <module>business-servicemodule> <module>business-clientmodule> modules> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.1.5.RELEASEversion> <relativePath/> parent> <properties> <java.version>1.8java.version> <spring-cloud.version>Greenwich.SR1spring-cloud.version> <mapper.starter.version>2.1.5mapper.starter.version> <mysql.version>5.1.46mysql.version> properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-dependenciesartifactId> <version>${spring-cloud.version}version> <type>pomtype> <scope>importscope> dependency> <dependency> <groupId>tk.mybatisgroupId> <artifactId>mapper-spring-boot-starterartifactId> <version>${mapper.starter.version}version> dependency> <dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <version>${mysql.version}version> dependency> dependencies> dependencyManagement> <dependencies> <dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> dependency> dependencies> <build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> plugin> plugins> build>project>
然后在子项目business-service项目中创建对应的应用类,如图
然后在项目确定类上添加@MapperScan注解来扫描mapper文件所在的包,这里包路径最后的*,是因为mapper包下还有许多子包,因此不一一写出就使用*来代替全部
package com.yd;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import tk.mybatis.spring.annotation.MapperScan;/** * @Author: zengyz * @Date: 2020/11/4 14:12 */@SpringBootApplication@MapperScan("com.yd.mapper.*")public class BusinessServiceApplication { public static void main(String[] args) { SpringApplication.run(BusinessServiceApplication.class, args); }}
最后在配置文件在加上数据库配置和mybatis.type-aliases-package配置,mybatis.type-aliases-package配置是用来指定POJO包也就是表生成的entity所在的包目录来让mybatis自动扫描到自定义POJO,因为在mapper.xml文件中的resultMap的type和parameterType会使用到
server: port: 8902eureka: client: service-url: defaultZone: http://127.0.0.1:8901/eurekaspring: application: name: business-service datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:33067/tas?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowMultiQueries=true&serverTimezone=GMT%2B8 username: root password: 123456mybatis: type-aliases-package: com.yd.entity.*
然后启动business-service项目就可以在eureka服务中心看到这个服务,同时也可以使用地址方法这里项目;
在business-service项目完成服务注册后就需要business-client项目来发现服务消费了,这就很简单了创建消费控制类UserEntityController和返回对象UserEntity就可以,不过为了规范些这里还设置一个统一的返回结果类ResponseResult
这样就可以启动项目来服务消费了,如图
项目下载地址:https://pan.baidu.com/s/1cNzbeqXWus-pTIN7lltzHA
提取密码:g5ce