一、新建商品工程
二、添加工程配置
#端口号
server:
port: 8500
#服务注册名称
spring:
application:
name: member-server
#数据库相关配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.1.106:3306/ec-goods?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
username: hhyu
password: Yhh920205
type: com.alibaba.druid.pool.DruidDataSource
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
redis:
database: 4
# Redis服务器地址
host: 192.168.1.106
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码(默认为空)
password: 123
# 连接池最大连接数(使用负值表示没有限制)
jedis:
pool:
max-active: 8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1
# 连接池中的最大空闲连接
max-idle: 8
# 连接池中的最小空闲连接
min-idle: 0
# 连接超时时间(毫秒)
timeout: 10000
#注册中心地址
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8100/eureka/
mybatis-plus:
# xml
mapper-locations: classpath:mapper/*Mapper.xml
# 实体扫描,多个package用逗号或者分号分隔
#type-aliases-package: com.yhh.member
configuration:
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: input
#微服务调用超时失败的两种情况:
#1.由于spring的懒加载机制,Ribbon在第一次调用的时候才会去初始化Ribbon Client,然后才去调用远端服务,这需要一定的时间,而Ribbon本身的默认超时时间是1秒钟
#2.当请求响应时间过长,触发了熔断器,所以导致了请求失败。
ribbon:
ReadTimeout: 15000
ConnectTimeout: 15000
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 15000
#swagger相关配置
swagger:
base-package: com.yhh.member
title: SpringCloud2.x构建企业级微服务项目-商品模块接口
description: 该项目“基于SpringCloud2.x构建企业级微服务项目”
version: 1.1
terms-of-service-url: www.xxxx.com
contact:
name: xb
email: xxxxxxx@qq.com
#启动类上加上:@EnableSwagger2Doc注解
三、添加逆向工程工具
package com.yhh.goods.util;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
public class CodeGenerator {
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 选择 freemarker 引擎,默认 Veloctiy
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir"); //获取当前项目根路径
gc.setOutputDir(projectPath + "/ecs-impl/ec-impl-goods/src/main/java");
//输出目录
gc.setAuthor("xb");
gc.setSwagger2(true); //实体属性 Swagger2 注解
gc.setBaseResultMap(true);// XML ResultMap
gc.setBaseColumnList(true);// XML columList
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.1.106:3306/ec-goods?useUnicode=true&useSSL=false&characterEncoding=utf8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("Yhh920205");
mpg.setDataSource(dsc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
mpg.setTemplate(templateConfig);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.yhh.goods");
pc.setController("controller");
pc.setEntity("model");
pc.setMapper("mapper");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setXml("mapperXml");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setInclude(new String[] { "product","category" });
mpg.setStrategy(strategy);
mpg.execute();
}
}
四、执行逆向工程