问题
文章平均质量分 52
来了就走下去
生活不止有远方,还有代码
展开
-
socket.io前后端实践及转发、多服务问题
socket.io前后端实践及转发、多服务问题及解决方案ip_hash+sticky session原创 2022-06-21 15:07:37 · 3306 阅读 · 2 评论 -
一次@Validated注解失效问题排查及解决
@Validated注解失效,SpringMVC参数长度超过256问题解决方案(1)找一个能正确校验的项目接口,通过编写错误的参数,来使得系统抛出异常,然后从异常处开始查看堆栈信息,分析关键变量的赋值(2)如果找到影响的某个关键变量,然后我们转而关注该变量的赋值部分,再次debug,查找是由谁进行赋值的(3)直到分析出,某个位置的赋值是有问题的,那么则分析赋值的变量值来源,这样大部分都能找到问题所在原创 2022-06-02 17:30:03 · 3545 阅读 · 0 评论 -
java stream使用不当引发的线上问题
问题重现如下案例代码:public class Test { public static void main(String[] args) { List<String> stringList = new ArrayList<>(); stringList.add("1"); stringList.add("2"); System.out.println(stringList); filter原创 2022-03-08 15:56:49 · 1312 阅读 · 1 评论 -
实现SmartApplicationListener并在方法上加上@Async注解,同时引入Feign接口对象导致循环依赖问题
问题重现定义一个类A(1)实现SmartApplicationListener接口(2)在重写的onApplicationEvent方法上定义@Async注解(3)在类中注入其它服务的Feign接口对象示例如下:@Slf4j@Componentpublic class A implements SmartApplicationListener { @Autowired private FeignX feignX; @Override public boo原创 2022-03-01 14:46:57 · 563 阅读 · 0 评论 -
Seata部署问题 - registry.conf配置文件不起作用
问题重现我使用的是docker-compose方式部署seata server端目录结构如下:| - conf - registry.conf - file.conf| - docker-compose.ymldocker-compose.yml配置如下:version: "3"services: seata-server: image: seataio/seata-server hostname: seata-server ports: - "8原创 2022-01-08 11:35:11 · 4340 阅读 · 2 评论 -
多个切面(事务切面+自定义切面)对同一个方法进行拦截,查询不到事务保存的数据问题解决
问题重现需求:查询数据是否存在,如果不存在则新增,只允许新增一次考虑到多个线程并发访问的情况,所以需要通过分布式锁进行实现,同时新增是持久化到数据库中伪代码实现如下:@Componentpublic class A { @Autowired private A current; public B methodA() { // 查询数据库是否存在数据 B b = query(); if (b == null) { b = current.methodB();原创 2022-01-04 15:31:39 · 1156 阅读 · 0 评论 -
事务不起效或切面不执行的 两种Spring AOP切面增强的方式
问题描述在一个类A中,有两个方法,一个方法methodA,一个方法methodB,在methodA方法中调用methodB方法,两个方法上都使用了自定义的注解@CustomAnnotation,同时编写了切面来拦截使用了该注解的方法,伪代码如下:class A { @CustomAnnotation public void methodA() { methodB(); } @CustomAnnotation public void methodB() { }}切面伪代码如下原创 2022-01-04 14:10:07 · 529 阅读 · 0 评论 -
SpringBoot Test + Nacos配置文件中文导致的java.nio.char set.MalformedInputException: Input length = 1
SpringBoot Test + Nacos配置文件中文导致的java.nio.charset.MalformedInputException: Input length = 1原创 2021-12-24 17:15:32 · 1555 阅读 · 0 评论 -
druid-spring-boot-stater-1.2.6+maven3.8.2 -> Cannot resolve com.sun:tools:1.8
cannot resolve com.sun:tools:1.8原创 2021-12-01 11:45:53 · 838 阅读 · 0 评论 -
前后端开发协同的思考
前后端开发面临的问题错误码规范异常结果的返回会话如何保持错误码规范前后端需要定义一套完整的错误码体系,每个错误码都有其含义,正确响应结果会有一个code,可以定义为200,跟标准http code对应,容易理解。有些api接口,会使用http标准code返回,告知用户业务的状态,例如easyar的接口https://help.easyar.cn/EasyAR%20CRS/api/ta...原创 2019-11-15 19:05:24 · 511 阅读 · 0 评论 -
java编程中的问题及解决问题
1 ibatis中是否定义可重用的列名?例id, age, name原因:如果定义这个,可以使得编写的sql可重用,但是多人开发可能 会使得修改会产生新的问题,如果某个人添加了一些字段在COLUMN_LIST中,那么之前写的sql语句就会发生错误,所以这里涉及到开发人员对可重用的理解与重用部分修改的考虑。答:可以定义,但名称应该更加明确,,...,而且开发者之间需要达成共识:对于该部分原创 2016-09-27 22:08:28 · 731 阅读 · 0 评论 -
如何编写好的代码?
大多数时候,我们都在想怎么编写出好的代码,大多数时候我们都在为之前写过的代码懊恼,但从事另一项工作时,犯同样的错误,这其实是自己的编程思维意识不够。下面将从命名,函数,站在读者的角度上等多个维度讲述如何编写好的代码。1、命名涉及到多个地方,是项目中最普遍也是最头疼的一件事。原则:在命名之前多想一下读者看到这个命名会不会产生误解。原则1 精准和准确的命原创 2016-10-12 21:49:09 · 1761 阅读 · 0 评论 -
如何在Service方法中抛出异常并返回状态或校验结果?
在Service方法中,如果我们通过抛出异常来进行事务处理(其实有更好的办法:Spring事务配置),那么我们的Service方法需要抛出异常,但这里有一个问题,之前都没有考虑到,今天测试接口的时候发现的,问题:当发现检验失败的时候,我们给Map设置了一个key为message,并返回该Map,但并没有抛出异常,导致事务没有得到回滚。为了解决这个问题,我需要在校验失败的时候抛出异常,而不是retu原创 2016-10-11 21:21:09 · 11984 阅读 · 1 评论 -
如何写好软件?
写软件就相当于讲故事,你的故事是给人看的,你讲的故事够清晰,不添加额外的干扰因素,只为讲好一个故事,那么你就会写出一个好的软件。原创 2016-08-26 20:35:44 · 585 阅读 · 0 评论 -
如何学习?
引子【学习改变命运】一人去算命,算命先生摸骨相面掐算八字后,说,你二十岁恋爱,二十五岁结婚,三十岁生子,一生富贵平安家庭幸福晚年无忧。此人先惊后怒,道:我今年三十五岁,博士,光棍,木有恋爱。先生闻言,略微沉思后说:“年轻人,学习改变命运啊!”——转自微博段子本文的主要读者是需要学习的人和需要辅导别人学习的人,你可能是其中的一员。正文大多数人对学习的认知还停留在校园时代。对他们来转载 2016-08-30 19:38:12 · 354 阅读 · 0 评论