springcloud集成nacos完成項目

下載nacos
1.在nacos官網下載nacos
2.解壓nacos,啓動
創建項目
1.創建一個maven的空項目(項目名爲springcloudDenmo)
2.然後在該項目下創建四個spring Initializr項目(springcloud-api、springcloud-beans、springcloud-boot、springcloud-nacos)
添加依賴
1.springcloudDenmo添加依賴

<?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.0</modelVersion>
    <parent>
    //這裏的問號要自己寫自己的父
        <groupId>???</groupId>
        <artifactId>???</artifactId>
        <version>2.0.2-SNAPSHOT</version>
    </parent>

    <groupId>com.jdrx</groupId>
    <artifactId>springcloudDemo</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>
    <modules>
        <module>springcloud-api</module>
        <module>springcloud-beans</module>
        <module>springcloud-boot</module>
        <module>springcloud-nacos</module>
    </modules>
    <properties>
        <springcloud-api.version>1.0.0</springcloud-api.version>
        <springcloud-beans.version>1.0.0</springcloud-beans.version>
        <springcloud-boot.version>1.0.0</springcloud-boot.version>
        <commons-lang3.version>3.3.2</commons-lang3.version>
        <commons-io.version>2.4</commons-io.version>
        <guava.version>20.0</guava.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

2.springcloud-beans添加依賴

<?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.0</modelVersion>
    <parent>
        <groupId>com.jdrx</groupId>
        <artifactId>springcloudDemo</artifactId>
        <version>1.0.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <!--<groupId>com.jdrx</groupId>-->
    <artifactId>springcloud-beans</artifactId>
    <!--<version>0.0.1-SNAPSHOT</version>-->
    <!--<name>springcloud-beans</name>-->
    <!--<description>Demo project for Spring Boot</description>-->

    <!--<properties>-->
        <!--<java.version>1.8</java.version>-->
        <!--<spring-cloud.version>Greenwich.SR1</spring-cloud.version>-->
    <!--</properties>-->

    <dependencies>
        <dependency>
            <groupId>com.jdrx.platform</groupId>
            <artifactId>platform-rest</artifactId>
            <version>${platform.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.jdrx.platform</groupId>
            <artifactId>platform-jdbc</artifactId>
            <version>${platform.version}</version>
        </dependency>
        <dependency>
            <groupId>com.jdrx.platform</groupId>
            <artifactId>platform-jdbc-pg</artifactId>
            <version>${platform.version}</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.cloud</groupId>-->
            <!--<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
        </dependency>

        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-test</artifactId>-->
            <!--<scope>test</scope>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.11.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.10</version>
        </dependency>

    </dependencies>


    <!--<dependencyManagement>-->
        <!--<dependencies>-->
            <!--<dependency>-->
                <!--<groupId>org.springframework.cloud</groupId>-->
                <!--<artifactId>spring-cloud-dependencies</artifactId>-->
                <!--<version>${spring-cloud.version}</version>-->
                <!--<type>pom</type>-->
                <!--<scope>import</scope>-->
            <!--</dependency>-->
        <!--</dependencies>-->
    <!--</dependencyManagement>-->

    <!--<build>-->
        <!--<plugins>-->
            <!--<plugin>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--</plugin>-->
        <!--</plugins>-->
    <!--</build>-->
</project>

3.springcloud-api添加依賴

<?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.0</modelVersion>
    <parent>
        <groupId>com.jdrx</groupId>
        <artifactId>springcloudDemo</artifactId>
        <version>1.0.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <!--<groupId>com.jdrx</groupId>-->
    <artifactId>springcloud-api</artifactId>
    <version>${springcloud-api.version}</version>
    <!--<name>springcloud-api</name>-->
    <!--<description>Demo project for Spring Boot</description>-->

    <!--<properties>-->
        <!--<java.version>1.8</java.version>-->
        <!--<spring-cloud.version>Greenwich.SR1</spring-cloud.version>-->
    <!--</properties>-->

    <dependencies>
        <dependency>
            <groupId>com.jdrx</groupId>
            <artifactId>springcloud-beans</artifactId>
            <version>${springcloud-beans.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-test</artifactId>-->
            <!--<scope>test</scope>-->
        <!--</dependency>-->

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <artifactId>guava</artifactId>
            <groupId>com.google.guava</groupId>
            <version>${guava.version}</version>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.11.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-client -->
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>4.5.1</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-lang3</artifactId>
                    <groupId>org.apache.commons</groupId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


    <!--<dependencyManagement>-->
        <!--<dependencies>-->
            <!--<dependency>-->
                <!--<groupId>org.springframework.cloud</groupId>-->
                <!--<artifactId>spring-cloud-dependencies</artifactId>-->
                <!--<version>${spring-cloud.version}</version>-->
                <!--<type>pom</type>-->
                <!--<scope>import</scope>-->
            <!--</dependency>-->
        <!--</dependencies>-->
    <!--</dependencyManagement>-->

    <!--<build>-->
        <!--<plugins>-->
            <!--<plugin>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--</plugin>-->
        <!--</plugins>-->
    <!--</build>-->

</project>

4.springcloud-boot添加依賴

<?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.0</modelVersion>
    <parent>
        <groupId>com.jdrx</groupId>
        <artifactId>springcloudDemo</artifactId>
        <version>1.0.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jdrx</groupId>
    <artifactId>springcloud-boot</artifactId>
    <!--<version>0.0.1-SNAPSHOT</version>-->
    <!--<name>springcloud-boot</name>-->
    <!--<description>Demo project for Spring Boot</description>-->

    <!--<properties>-->
        <!--<java.version>1.8</java.version>-->
        <!--<spring-cloud.version>Greenwich.SR1</spring-cloud.version>-->
    <!--</properties>-->

    <dependencies>
        <dependency>
            <groupId>com.jdrx</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>${springcloud-boot.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <artifactId>guava</artifactId>
            <groupId>com.google.guava</groupId>
            <version>20.0</version>
        </dependency>
    </dependencies>

    <!--<dependencyManagement>-->
        <!--<dependencies>-->
            <!--<dependency>-->
                <!--<groupId>org.springframework.cloud</groupId>-->
                <!--<artifactId>spring-cloud-dependencies</artifactId>-->
                <!--<version>${spring-cloud.version}</version>-->
                <!--<type>pom</type>-->
                <!--<scope>import</scope>-->
            <!--</dependency>-->
        <!--</dependencies>-->
    <!--</dependencyManagement>-->

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

5.springcloud-nacos添加依賴

<?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.0</modelVersion>
    <parent>
        <groupId>com.jdrx</groupId>
        <artifactId>springcloudDemo</artifactId>
        <version>1.0.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jdrx</groupId>
    <artifactId>springcloud-nacos</artifactId>
    <!--<version>0.0.1-SNAPSHOT</version>-->
    <!--<name>springcloud-nacos</name>-->
    <!--<description>Demo project for Spring Boot</description>-->

    <!--<properties>-->
        <!--<java.version>1.8</java.version>-->
        <!--<spring-cloud.version>Greenwich.SR1</spring-cloud.version>-->
    <!--</properties>-->

    <dependencies>
        <dependency>
            <groupId>com.jdrx</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>fastjson</artifactId>
                    <groupId>com.alibaba</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.jdrx.platform</groupId>
            <artifactId>platform-nacos-config</artifactId>
            <version>${platform.version}</version>
        </dependency>

        <dependency>
            <groupId>com.jdrx.platform</groupId>
            <artifactId>platform-nacos-registry</artifactId>
            <version>${platform.version}</version>
        </dependency>
        <dependency>
            <groupId>com.jdrx.platform</groupId>
            <artifactId>platform-dubbo-nacos</artifactId>
            <version>${platform.version}</version>
        </dependency>
    </dependencies>
    <!--<dependencyManagement>-->
        <!--<dependencies>-->
            <!--<dependency>-->
                <!--<groupId>org.springframework.cloud</groupId>-->
                <!--<artifactId>spring-cloud-dependencies</artifactId>-->
                <!--<version>${spring-cloud.version}</version>-->
                <!--<type>pom</type>-->
                <!--<scope>import</scope>-->
            <!--</dependency>-->
        <!--</dependencies>-->
    <!--</dependencyManagement>-->

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

項目結構
1.傳統項目我們都是從dao->service->controller
2.現在項目首先由beans開始到api再到boot(boot指的是本地的運行啓動,運用nacos的時候在nacos啓動)。
3.在beans中我們創建dao、dto、entry、vo,resources創建mapper放置配置文件
4.在api下創建controller、cinfg、mq、service、utils
5.在boot的resource下properties文件和yml文件
properties文件

spring.profiles.active=dev
spring.application.name=springcloudDemo
debug=true

yml文件

spring:
  #數據源配置
  datasource:
    druid:
      db-type: mysql
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
      username: r
      password: 1

server:
  port: 8080
  servlet:
    context-path: /jdrx-demo

info:
  name: springcloudDemo
  description: springcloudDemo
  version: 1.0.0

6.nacos下創建yml文件

spring:
  application:
    name: springcloudDemo
  cloud:
    nacos:
      config:
        server-addr: 192.168.60.51:8848
        file-extension: yml
        group: demo
  profiles:
    active: d

項目書寫
1.beans
test類下

package com.jdrx.springcloud;

import org.apache.commons.lang3.StringUtils;
import org.mybatis.generator.api.CommentGenerator;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.*;
import org.mybatis.generator.api.dom.xml.XmlElement;
import org.mybatis.generator.config.MergeConstants;
import org.mybatis.generator.config.PropertyRegistry;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Properties;

import static org.mybatis.generator.internal.util.StringUtility.isTrue;

/**
 * 描述:
 *
 * @version 1.9.10
 * @since 1.9.10
 */
public class MyBatisCommentGenerator implements CommentGenerator {
    private Properties properties;
    private Properties systemPro;
    private boolean suppressDate;
    private boolean suppressAllComments;
    private String currentDateStr;

    public MyBatisCommentGenerator() {
        super();
        properties = new Properties();
        systemPro = System.getProperties();
        suppressDate = false;
        suppressAllComments = false;
        currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date());
    }

    @Override
    public void addJavaFileComment(CompilationUnit compilationUnit) {
        // add no file level comments by default
        if (compilationUnit.getType().getShortName().endsWith("PO")) {

            compilationUnit.addImportedTypes(new HashSet<FullyQualifiedJavaType>() {{
                add(new FullyQualifiedJavaType("io.swagger.annotations.ApiModel"));
                add(new FullyQualifiedJavaType("io.swagger.annotations.ApiModelProperty"));
                add(new FullyQualifiedJavaType("org.hibernate.validator.constraints.Range"));
                add(new FullyQualifiedJavaType("javax.validation.constraints.NotNull"));
                add(new FullyQualifiedJavaType("java.util.Date"));
            }});
        } else if (compilationUnit.getType().getShortName().endsWith("DAO")) {
            compilationUnit.addImportedTypes(new HashSet<FullyQualifiedJavaType>() {{
                add(new FullyQualifiedJavaType("org.apache.ibatis.annotations.Mapper"));
            }});
        }
    }

    /**
     * Adds a suitable comment to warn users that the element was generated, and
     * when it was generated.
     */
    @Override
    public void addComment(XmlElement xmlElement) {
        return;
    }

    @Override
    public void addRootComment(XmlElement rootElement) {
        // add no document level comments by default
        return;
    }

    @Override
    public void addConfigurationProperties(Properties properties) {
        this.properties.putAll(properties);

        suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE));

        suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS));
    }

    /**
     * This method adds the custom javadoc tag for. You may do nothing if you do
     * not wish to include the Javadoc tag - however, if you do not include the
     * Javadoc tag then the Java merge capability of the eclipse plugin will
     * break.
     *
     * @param javaElement the java element
     */
    protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) {
        javaElement.addJavaDocLine(" *");
        StringBuilder sb = new StringBuilder();
        sb.append(" * ");
        sb.append(MergeConstants.NEW_ELEMENT_TAG);
        if (markAsDoNotDelete) {
            sb.append(" do_not_delete_during_merge");
        }
        String s = getDateString();
        if (s != null) {
            sb.append(' ');
            sb.append(s);
        }
        javaElement.addJavaDocLine(sb.toString());
    }

    /**
     * This method returns a formated date string to include in the Javadoc tag
     * and XML comments. You may return null if you do not want the date in
     * these documentation elements.
     *
     * @return a string representing the current timestamp, or null
     */
    protected String getDateString() {
        String result = null;
        if (!suppressDate) {
            result = currentDateStr;
        }
        return result;
    }

    @Override
    public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) {

        System.out.println("========="+innerClass.getType().getShortName());
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
        innerClass.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        sb.append(" ");
        sb.append(getDateString());
        innerClass.addJavaDocLine(sb.toString().replace("\n", " "));
        innerClass.addJavaDocLine(" */");
    }

    @Override
    public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
        innerEnum.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        innerEnum.addJavaDocLine(sb.toString().replace("\n", " "));
        innerEnum.addJavaDocLine(" */");
    }

    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable,
                                IntrospectedColumn introspectedColumn) {
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
//        field.addJavaDocLine("/**");
//        sb.append(" * ");
//        sb.append(introspectedColumn.getRemarks());
//        field.addJavaDocLine(sb.toString().replace("\n", " "));
//        field.addJavaDocLine(" */");
        String require = "required = true";
        if (!introspectedColumn.isNullable()) {
            if ("String".equals(introspectedColumn.getFullyQualifiedJavaType().getShortName())) {
                field.addJavaDocLine("@NotEmpty");
                field.addJavaDocLine("@Length(min = 1, max = " + introspectedColumn.getLength() + ")");
            } else if ("Integer".equals(introspectedColumn.getFullyQualifiedJavaType().getShortName())) {
                field.addJavaDocLine("@NotNull");
                field.addJavaDocLine("@Range(min = 1, max = Integer.MAX_VALUE)");
            } else if ("Long".equals(introspectedColumn.getFullyQualifiedJavaType().getShortName())) {
                field.addJavaDocLine("@NotNull");
                field.addJavaDocLine("@Range(min = 1, max = Long.MAX_VALUE)");
            } else {
                field.addJavaDocLine("@NotNull");
            }
        } else {
            require = "";
        }
        if (StringUtils.isNotEmpty(introspectedColumn.getRemarks())) {
            if (StringUtils.isNotEmpty(require)) {
                field.addJavaDocLine("@ApiModelProperty(value = \"" + introspectedColumn.getRemarks() + "\", " + require + ")");
            } else {
                field.addJavaDocLine("@ApiModelProperty(value = \"" + introspectedColumn.getRemarks() + "\")");
            }
        }
    }

    @Override
    public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
        field.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        field.addJavaDocLine(sb.toString().replace("\n", " "));
        field.addJavaDocLine(" */");
    }

    @Override
    public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
        topLevelClass.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        topLevelClass.addJavaDocLine(sb.toString().replace("\n", " "));
        sb.setLength(0);
        sb.append(" * @author ");
        sb.append(systemPro.getProperty("user.name"));
        sb.append(" ");
        sb.append(currentDateStr);
        topLevelClass.addJavaDocLine(" */");
        topLevelClass.addJavaDocLine("@ApiModel(value = \"" + introspectedTable.getFullyQualifiedTable().getDomainObjectName() + "\", description = \"" + introspectedTable.getRemarks() + "\")");
    }

    @Override
    public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) {
//        if (suppressAllComments) {
//            return;
//        }
//        method.addJavaDocLine("/**");
//        addJavadocTag(method, false);
//        method.addJavaDocLine(" */");
    }

    @Override
    public void addGetterComment(Method method, IntrospectedTable introspectedTable,
                                 IntrospectedColumn introspectedColumn) {
//        if (suppressAllComments) {
//            return;
//        }
//        method.addJavaDocLine("/**");
//        StringBuilder sb = new StringBuilder();
//        sb.append(" * ");
//        sb.append(introspectedColumn.getRemarks());
//        method.addJavaDocLine(sb.toString().replace("\n", " "));
//        sb.setLength(0);
//        sb.append(" * @return ");
//        sb.append(introspectedColumn.getActualColumnName());
//        sb.append(" ");
//        sb.append(introspectedColumn.getRemarks());
//        method.addJavaDocLine(sb.toString().replace("\n", " "));
//        method.addJavaDocLine(" */");
    }

    @Override
    public void addSetterComment(Method method, IntrospectedTable introspectedTable,
                                 IntrospectedColumn introspectedColumn) {
//        if (suppressAllComments) {
//            return;
//        }
//        method.addJavaDocLine("/**");
//        StringBuilder sb = new StringBuilder();
//        sb.append(" * ");
//        sb.append(introspectedColumn.getRemarks());
//        method.addJavaDocLine(sb.toString().replace("\n", " "));
//        Parameter parm = method.getParameters().get(0);
//        sb.setLength(0);
//        sb.append(" * @param ");
//        sb.append(parm.getName());
//        sb.append(" ");
//        sb.append(introspectedColumn.getRemarks());
//        method.addJavaDocLine(sb.toString().replace("\n", " "));
//        method.addJavaDocLine(" */");
    }

    @Override
    public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {

        System.out.println("========="+innerClass.getType().getShortName());
        if (suppressAllComments) {
            return;
        }
        StringBuilder sb = new StringBuilder();
        innerClass.addJavaDocLine("/**");
        sb.append(" * ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        innerClass.addJavaDocLine(sb.toString().replace("\n", " "));
        sb.setLength(0);
        sb.append(" * @author ");
        sb.append(systemPro.getProperty("user.name"));
        sb.append(" ");
        sb.append(currentDateStr);
        innerClass.addJavaDocLine(" */");
    }
}

package com.jdrx.springcloud;


import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * 描述:啓動mabitas插件
 */
public class MyBatisGeneratorStartUp {

    @Test
    public void test() {
        try {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            ClassLoader classloader = Thread.currentThread().getContextClassLoader();
            InputStream is = classloader.getResourceAsStream("mybatis-generator.xml");
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(is);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2.當啓動測試類後,我們將自動生成的xml文件和dao文件和po文件分別複製進入mapper、dao、entry下下·
3.在api下service書寫簡單的服務方法
4.在api下controller中書寫接口
啓動項目
1.在springcloud-boot下

package com.jdrx.springcloudboot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableTransactionManagement
@ComponentScan("com")
@SpringBootApplication
@MapperScan("com.jdrx.beans.dao")
public class SpringcloudBootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudBootApplication.class, args);
    }

}

2.在springcloud-nacos下

package com.jdrx.springcloudnacos;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@EnableTransactionManagement
@ComponentScan("com")
@MapperScan("com.jdrx.beans.dao")
public class SpringcloudNacosApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudNacosApplication.class, args);
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章