开发过程中遇到的坑以及个人感悟

1.maven中央仓库设置
把中央仓库镜像设置错了,导致设置失效,一直从默认中央仓库下载依赖,蠢
在这里插入图片描述
2.单元测试启动失败
Cannot instantiate test(s): java.lang.SecurityException: Prohibited package name: java.com.
单元测试一级包名不能是java
3.tomcat启动失败,报ClassNotFound
原因是项目里需要的jar包没有导入
解决办法:project Structor->Artifacts->output layout 项目右键 put into output root
4.如何快速找到文件安装路径
右键软件->属性->快捷方式->打开文件所在路径
5.IDEA 启动tomcat 日志中文乱码解决
参考博客:https://blog.csdn.net/cyl101816/article/details/99618164
6.公司内网无法访问start.spring.io的问题
访问国内的网站 https://start.aliyun.com/
哪位大佬能告诉我为什么访问不了官网

7.解决IDEA目录展开不了的问题
compact middle package

8.IDEA 2020.1.2激活解决
破解很简单,只需要先试用,然后将jar包拖到IDEA中即可,关键是jar包不好找,我找了好久才找到能用的jar包
9.IDEA git日志出现乱码
配置settings->terminal->Environment Variables 设置成 LESSCHARSET=utf-8
10.基本数据类型的包装类在比较是否相等时用equals,不用==
11.IDEA里的全局搜索
两个办法,一个是双击shift,这种搜索的好像有限,还有一种是ctrl+shift+F,或者Edit->Find->Find in path,这种搜索的更彻底
12.mybatis/mybatis plus 处理遇到表中的字段和保留字冲突的情况
加上反引号即可在这里插入图片描述
13.IDEA本地部署springboot服务可以,服务器上部署失败
需要添加项目启动入口
在这里插入图片描述
14.关于mybatis的更新问题
首先mybatis的update操作返回值为1,表示表中存在这条数据,并不表示更新成功,返回值为0表示不存在这条数据
其次,更新时间,如果是mybatis自有的更新操作,则可以按下面的方式来自动更新时间
1.定义拦截器

@Component
public class UpdateTimeFileHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

2.添加全局配置

@Configuration
public class MybatisPlusConfig {

    @Bean
    public GlobalConfig globalConfig(){
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setMetaObjectHandler(new UpdateTimeFileHandler());
        return globalConfig;
    }
}

3.添加注解

 @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

如果sql语句是自己写的话,只能通过在数据库中设置
在这里插入图片描述
这样,在真正更新数据时,会自动更新时间
15.如何让git忽略不需要关注的文件
创建.gitignore文件,在文件里添加不需要关注的文件
如果之前已经有文件被track了,然后想忽略它,必须先把本地缓存清除,然后再提交
git rm --cached --force target/*
然后再提交,那么以后生成的target文件会自动被忽略
16.springboot的事务
1.在方法上添加@Transactional注解
2.在启动类上添加@EnableTransactionManagement注解
3.注意如果一个方法使用了事务,同一个类中的其他方法调用该方法会使事务失效
4.单元测试时,在测试方法或者类上加@Transactional ,默认自动回滚,如果希望不回滚,可以加注解@RollBack(false),如果正常,事务不回滚,如果异常,会回滚
5.多数据源时,需要添加数据源
在这里插入图片描述
17.项目日志打印不出来的问题

在这里插入图片描述
这里的感触是打印出来的信息真的很重要,不管它是warn还是error,开始我在网上找了很多方法,都没弄好,后来,我就看了这个爆红的部分,说是有两个jar包冲突,由于下面的log4j-slf4j-impl是我导入的,所有只要找到第一个,然后排除掉即可,我可太开心了
18.异常信息打印到日志中的问题
一般的捕获异常后调用e.printStackTrace() 只是将异常打印到控制台,不会打印到日志里,如果想将完整的异常信息打印到日志中,有两种方式,第一种是不对异常进行捕获,这样异常自动会被打印到日志中,另一种是log.error("",e),这样也会将异常信息完整打印到日志中,这里我使用的@Slf4j这个注解
19.开发过程分支管理
分支管理
1.开发从master拉分支
2.测试merge 到 dev分支进行测试
3.上线 merge 到 master分支上线
4.测试时要记得push到远程仓库,这样别人测试时可以pull到你要测试的代码
5.同理上线的时候要push到远程仓库
6.千万不要将dev 分支merge到开发分支,千万不要,因为上面很可能有别人的开发代码,这样会导致你的代码不干净,处理起来很麻烦
20.IDEA git log 中文乱码
settings->terminal->Environment Variables:LESSCHARSET=utf-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值