记录springboot初学时的小坑,希望以后可以不断完善!!!

1.读取application.yml文件中的数值,格式非常重要,value和key后面的冒号之间必须加一空格,否则读取不到       

2.使用com.baomidou.mybatisplus.mapper.EntityWrapper,设置查询条件之后只能使用selectMaps,无法使用selectList,不知道为什么

3.记一次粗心大意,获取post请求里面的json数据,一直获取失败,还尝试了使用流的方式读取,代码里没有stream close操作,却还报流closed,最终发现是自己限制了请求头里content-length为97,而json数据长度超过了,一直没好好理解这个字段的意义,还请领导帮忙找了好长时间问题,希望以后注意...

4.在普通类中无法注入dao或者bean,只是使用@Resource没用,需要

    private static RedisUtils redisUtils;

    private static DeviceDao  deviceDao;

    @SuppressWarnings( "static-access" )
    @Autowired
    public void setOperationInfo( RedisUtils redisUtils, DeviceDao deviceDao ) {
        this.redisUtils = redisUtils;
        this.deviceDao = deviceDao;
    }

这样引用就好啦

5.使用templates模板解析的时候,一直报解析异常,添加后缀suffix之后正常(主要是本地没问题,线上才出错,不上线根本发现不了问题),解决办法:

spring:
    #thymeleaf
    thymeleaf:
        prefix: 
            classpath: /templates/
        suffix: .ftl

6.接上面,正常解析之后,页面中的el表达式无法获取到传到前面的数据,还是本地没问题,生产环境不行,大概经过两天的折腾,增加了thymeleaf配置:mode: HTML5     encoding: UTF-8   content-type: text/html   cache: false,同时修改了页面<head><meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html"></head>一开始只是使用value=${state}改成了<input name="state" type="hidden" th:value="${state}" id="state"/>最终成功获取到数据!     --->2018/9/27

7.mybatis生成的xml文件中,有的表必须加上`table`两个单引号,否则会出现最后一个字段缺失一部分,类似:isclose-->iscl

最终发现是数据库中mysql的关键字的原因,可能表名用了'admin'等类似可能数据库敏感的字段,修改之后ok了.

8.springcloud中的问题:由于使用Hystrix 线程隔离导致ThreadLocal数据丢失,看了一些博客,暂时无法移植过来,所以放弃改用header了

9.filter无法注入StringRedisTemplate---->

@Autowired
    private StringRedisTemplate template;

用的时候赋值:template = ApplicationContextHelper.popBean(StringRedisTemplate.class);通过上下文获取.

10问题同8类似,网关转发之后不是同一个线程,但是request里的header没有变化,所以8可以这样解决,现在碰到的是服务之间的调用,比如服务A调用服务B,没想到它不经过网关,而且经过服务B的filter之后,里面的request已经不存在header信息了,好在token的验证已经放在了gateway里面,因此我在服务B中做了判断:request中没有header信息的直接放行,虽然解决方法很low,但效果感觉还不错,减少了再进入服务B内部消耗的时间.可以说,网关和各个服务的设计模式使得我可以使用这种方法解决问题,要是服务之间调用的时候需要重新经过网关,同时request中的header信息还不再存在的话,我说不得只能考虑阿里的transmittable-thread-local来改造线程池了(不知道可不可以...)

11.springboot集成jpa的时候,版本2.1.1会报错无法创建entityManager,换成1.5.8可以正常使用,不清楚为什么...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值