1.SpringBoot+MybatisPlus
本地环境、预发环境、线上都正常启动。
测试环境,采用SpringBoot打包
报错:找不到 AccountStatisis类。
原因:SpringBoot启动,扫描包 存在问题。 解决方法: 手动设置SpringBootVFS
mybatisPlus.setVfs(SpringBootVFS.class);
应该是maven pom.xml中的这个插件打的包
<!-- 打可运行jar直接使用 spring-boot-maven-plugin ,并打入resources文件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<configuration>
<mainClass>com.AccountApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
2.Lombok的toString方法
@EqualsAndHashCode(callSuper = true)
@Data
public class ManageVo extends Manage {
}
最好加上@ToString(callSuper=true)。
不然用Vo接收参数,父类也接收了参数,打印的时候,只能看到Vo自己的属性。
不方便线上排查问题。
3.多打印参数日志,很有必要
预发和线上,不好debug排查问题。
多打印参数,可以很快解决。
@RequestMapping("/list")
public String list(AccountStatisticsVo accountStatisticsVo) {
log.info("list,accountStatisticsVo={}",accountStatisticsVo);
super.fillAuthCompanyIdList(accountStatisticsVo);
log.info("list,accountStatisticsVo={}",accountStatisticsVo);
PageBean<AccountStatisticsVo> result = accountStatisticsService.selectAccountStatisticsList(accountStatisticsVo);
return success(result);
}
Java业务系统,大多都是Java各种参数、业务逻辑、Sql语句,因此,参数清楚了,排查问题快多了。
4.接收参数为空
http://localhost:18004/api/query?contractCompName= 后端String参数contractCompName此时为"",
<if test="contractCompName!=null">
</if>
以上判断是不够的。
<if test="contractCompName!=null and contractCompName != '' ">
</if>
但是,有时候就需要查询 空的呢?
前端,带条件查询,使用query?contractCompName=
如果不带条件,可以不带条件 query?,但是通常不够方便。
实际情况处理,看个人习惯。清晰、看得懂、好维护就行。
5.面试带简历
好多人面试都不带简历的。
这工作习惯,这面试态度。
哎~
6.日志文件中搜索 某日志
grep '开票请求' data-manage.log.2019-04-22
遇到了问题,寻找简单快捷的办法,提高工作效率。