zoukankan      html  css  js  c++  java
  • 搭建简单的SpringCloud项目一:注册中心和公共层

    注:笔者在搭建途中其实遇见不少问题,统一放在后面的文章说明,现在的搭建是测试OK的。

    GitHub:https://github.com/ownzyuan/test-cloud

     后续:搭建简单的SpringCloud项目二:服务层和消费层

                搭建简单的SpringCloud项目三:问题及解决

    数据库

    创建一个非常简单的user表

    父工程

    新建Maven项目(不直接创建SpringBoot项目):

    删掉父工程的src,引入SprinCloud、SprinBoot、Eureka、tkMybatis、Lombok等的依赖

    <dependencyManagement>
            <dependencies><dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Greenwich.SR1</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency><dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.1.4.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency><dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-eureka-server</artifactId>
                    <version>1.4.0.RELEASE</version>
                </dependency><dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-eureka</artifactId>
                    <version>1.4.0.RELEASE</version>
                </dependency><dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-openfeign-core</artifactId>
                    <version>2.0.1.RELEASE</version>
                </dependency><dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-openfeign</artifactId>
                    <version>2.0.1.RELEASE</version>
                </dependency><dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.47</version>
                </dependency><dependency>
                    <groupId>com.github.drtrang</groupId>
                    <artifactId>druid-spring-boot2-starter</artifactId>
                    <version>1.1.10</version>
                </dependency><dependency>
                    <groupId>tk.mybatis</groupId>
                    <artifactId>mapper-spring-boot-starter</artifactId>
                    <version>1.1.2</version>
                </dependency><dependency>
                    <groupId>tk.mybatis</groupId>
                    <artifactId>mapper</artifactId>
                    <version>3.4.1</version>
                </dependency><dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.16.20</version>
                </dependency></dependencies>
    </dependencyManagement>

    搭建注册中心

    新建Moudle

    eureka项目中pom依赖:

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

    application文件配置

    server:
      port: 8081
    ​
    eureka:
      instance:
        hostname: 127.0.0.1
      client:
        fetch-registry: false
        register-with-eureka: false
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    最后创建启动类,注意加入@EnableEurekaServer

     

    启动项目并访问http://localhost:8081/

     

    注册中心完成

     

    加入common

    注:非必要加入的一层,仅为了方便统一管理。

    common-base层

    这一层主要是将一些基础功能做好封装,在需要的时候直接继承过去就行。

    引入Lombok、tkMybatis

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
        </dependency>
    </dependencies>

    首先是基础DTO对象

    然后是IBaseService接口

    对应实现类(注意有些方法不实现,故使用抽象类):

    common层

    依赖与common-base一样,同时将common-base层也引进来

    <dependencies>  
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper</artifactId>
            </dependency>
            <dependency>
                <groupId>com.zy</groupId>
                <artifactId>cloud-common-base</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
    </dependencies>

    创建User实体

    import lombok.AllArgsConstructor;
    import lombok.Data;
    ​
    import javax.persistence.Column;
    import javax.persistence.Id;
    import javax.persistence.Table;
    ​
    @Data
    @AllArgsConstructor
    @Table(name = "user")
    public class User {
    ​
        @Id
        private Long id;
    ​
        @Column(name = "name")
        private String name;
    ​
        @Column(name = "status")
        private Integer status;
    }

    创建UserDTO:

    import com.zy.entity.dto.BaseDTO;
    import lombok.Data;
    import lombok.experimental.Accessors;
    ​
    import javax.persistence.Column;
    import javax.persistence.Table;
    ​
    @Data
    @Accessors(chain = true)
    @Table(name = "user")
    public class UserDTO extends BaseDTO {
    ​
        @Column(name = "name")
        private String name;
    ​
    }

     

  • 相关阅读:
    你所不知道的setTimeout
    SecureCRT8.1下载+注册机+破解教程
    jQuery学习
    GIt学习
    多进程
    Linux下的压缩(zip)解压(unzip)缩命令
    三次握手四次挥手
    django常见问题
    form和modelform
    文件上传
  • 原文地址:https://www.cnblogs.com/kzyuan/p/14666140.html
Copyright © 2011-2022 走看看