SpringBoot代码生成器generator使用教程
MyBatis Generator使用
MyBatis自动装配 MyBatis generator插件 使用方法
首先引入插件,引入依赖
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<configurationFile>
${basedir}/src/main/resources/generator/generatorConfig.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
编写配置文件
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<properties resource="generator/config.properties"/>
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="lombok" value="Getter,Setter,ToString"/>
</plugin>
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.url}"
userId="${jdbc.user}"
password="${jdbc.password}">
</jdbcConnection>
<!--实体-->
<javaModelGenerator targetPackage="com.itmuch.usercenter.domain.entity.${moduleName}"
targetProject="src/main/java"/>
<!--mapper.xml-->
<sqlMapGenerator targetPackage="com.itmuch.usercenter.dao.${moduleName}"
targetProject="src/main/resources"/>
<!--mapper接口-->
<javaClientGenerator targetPackage="com.itmuch.usercenter.dao.${moduleName}"
targetProject="src/main/java"
type="XMLMAPPER"/>
<!--为哪张表生成代码-->
<table tableName="${tableName}">
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
</context>
</generatorConfiguration>
配置要进行自动装配的类
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/user_center?nullCatalogMeansCurrent=true
jdbc.user=root
jdbc.password=12345678
# \u6A21\u5757\u540D\u79F0
moduleName=bonus
# \u8868\u540D
tableName=bonus_event_log
Lombok使用
首先通过IDEA安装Lombok插件,并且在POM文件中引入Lombok的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
Lombok注解
@EqualsAndHashCode :hashCode与Equals方法
@Getter :get方法
@Setter :set方法
@ToString :toString方法
@Data :以上四个的结合
@NoArgsConstructor :无参构造函数
@AllArgsConstructor :全参构造函数
@Builder :通过Build()方法可以简便的向对象中存放值
RestTemplate
RestTemplate是一种可以访问到其他服务的请求,通过发起HTTP请求来访问其他服务中的Controller。
使用方法:声明RestTemplate,使用getForObject()或者其他的方法可以获取到对应接口中的值,不过两个服务最好请求的对象是同一个。
BeansUtil
通过BeansUtil可以快速的Copy两个对象,无须一遍一遍的赋值。
SpringCloud Alibaba
SpringCloud Alibaba是SpringCloud的子项目,并且已经包含在了SpringCloud中,alibaba将传统SpringCloud中的某些快速构建微服务的工具进行了升级或者替换。
SpringCloud整合SpringCloud Alibaba需要先整合SpringBoot版本,之后配置SpringCloud版本,最后配置SpringCloud Alibaba。
<dependencyManagement>
<dependencies>
<!--整合spring cloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--整合spring cloud alibaba-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.9.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--语义化的版本控制-->
<!--2:主版本,第几代-->
<!--1:次版本,一些功能的增加,但是架构没有太大的变化,是兼容的-->
<!--5:增量版本,bug修复-->
<!--release:里程碑,SNAPSHOT:开发版 M:里程碑 RELEASE:正式版-->
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>