下载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);
}
}