构建springclound项目(详情)

本文介绍了如何使用Spring Boot和Spring Cloud创建一个微服务架构,包括设置基础依赖、创建Eureka服务端、提供者项目、消费者客户端及公共模块。涵盖了构建注册中心、数据持久化、CRUD接口实现和跨项目依赖管理。
摘要由CSDN通过智能技术生成

首先创一个父项目,删除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相关公共资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值