1.1 Console支持彩色输出插件:ANSI Escape in Console
1.1.1 进入Eclipse Marketplace,搜索ANSI Escape in Console并插件
1.1.2 设置application.properties
#Console支持彩色输出,需要安装插件:ANSI Escape in Console
spring.output.ansi.enabled=DETECT
1.1.3 配置日志(logback.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
<property name="LOG_HOME" value="D://logs" />
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converter />
<conversionRule conversionWord="wex" converter />
<conversionRule conversionWord="wEx" converter />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
<!--设置日志输出为控制台-->
<appender name="STDOUT" >
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!-- 不带彩色的日志在控制台输出时候的设置 -->
<!-- <appender name="STDOUT" >
<encoder >
格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender> -->
<!-- 按照每天生成日志文件 -->
<appender name="FILE" >
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy >
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/MultiTenant-%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder >
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy >
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root>
<level value="INFO"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
1.1.4 运行结果
1.2 lombok插件:实体类getter/setter自动生成
1.2.1 在Eclipse中配置lombok插件
l 从lombok的官方网址:http://projectlombok.org/,下载lombok.jar包;
l 拷贝lombok.jar至eclipse安装目录下;
l 修改eclipse启动配置文件:eclipse.ini,添加如下配置
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
l 重新启动Eclipse
1.2.2 在pom.xml中添加lombok相关引用
<dependencies>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
1.2.3 常用注解
@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
1.2.4 在实体类中添加相关注解
1.2.5 测试代码
1.2.6 相关资料
官网:http://mapstruct.org/documentation/installation/
1.3 MapStruct插件:对象映射
1.3.1 在pom.xml中添加MapStruct相关引用
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.3.0.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version> <!-- or newer version -->
<configuration>
<source>1.8</source> <!-- depending on your project -->
<target>1.8</target> <!-- depending on your project -->
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.0.Final</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
1.3.2 Entity类
public class Target {
private Long testing;
public Long getTesting() {
return testing;
}
public void setTesting( Long testing ) {
this.testing = testing;
}
}
1.3.3 DTO类
@Data
public class Source {
private String test;
}
1.3.4 Mapper类
@Mapper
public interface SourceTargetMapper {
SourceTargetMapper MAPPER = Mappers.getMapper( SourceTargetMapper.class );
@Mapping( source = "test", target = "testing" )
Target toTarget( Source s );
}
1.3.5 单元测试
public class SourceTargetMapperTest {
@Test
public void testMapping() {
Source s = new Source();
s.setTest( "5" );
Target t = SourceTargetMapper.MAPPER.toTarget( s );
assertEquals( 5, (long) t.getTesting() );
}
}
1.3.6 相关资料
官网:http://mapstruct.org/documentation/installation/
Git实例代码:https://github.com/mapstruct/mapstruct-examples