Spring Boot中如何干掉if else
前言 看到crossoverJie的文章《利用策略模式优化过多 if else 代码》后受到启发,可以利用策略模式简化过多的if else代码,文章中提到可以通过扫描实现处理器的自注册,我在这里介绍在Spring Boot框架中的实现方法。 ...
前言 看到crossoverJie的文章《利用策略模式优化过多 if else 代码》后受到启发,可以利用策略模式简化过多的if else代码,文章中提到可以通过扫描实现处理器的自注册,我在这里介绍在Spring Boot框架中的实现方法。 ...
介绍 位运算(&)效率要比取模运算(%)高很多,主要原因是位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。 a % b == a & (b - 1) 前提:b 为 2^n ...
问题 最近在项目开发中,使用 Feign 调用服务,当触发熔断机制时,遇到了以下问题: 异常信息形如:TestService#addRecord(ParamVO) failed and no fallback available.; 获取不到服务提供方抛出的原始异常信息; 实现某些业务方法不进入熔断,直接往外抛出异常; 接下来将一一解决上述问题。 ...
本文介绍基于Spring Boot和JDK8编写一个AOP,结合自定义注解实现通用的接口参数校验。 缘由 目前参数校验常用的方法是在实体类上添加注解,但对于不同的方法,所应用的校验规则也是不一样的,例如有一个AccountVO实体: ...
微服务中通常使用 Feign 作为服务消费者,那么如何使用 Feign 接口传输文件呢? 一、配置文件解析器 服务提供者和消费者都需要配置文件解析器,这里使用commons-fileupload替换原有的解析器: ...
前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… ...
如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件的必要性 互联网应用中,分页可谓无处不在,在每个需要展示数据的地方,都能找到分页的影子。在日常开发中,为了追求效率,通常使用数据库的物理分页。这时,对于一个业务逻辑SQL,大多数情况需要输出两段SQL来达到分页效果:count查询总数和limit分页,这无疑增加了大量的工作量。对于这种大量的、相似的、非业务逻辑的代码,抽象出公共插件是势在必行的。 ...
前段时间在国外的服务器上搭建了CentOS,没想到过了几天上去一看,有2万多次的尝试登陆记录: # 查看系统登陆日志 vim /var/log/secure 顿时吓尿了,后来经过一番搜查,定下了两个防范措施: ...
Python 作为服务端,Java 作为客户端调用 Python 提供的接口。本文主要按照这篇文章的思路连通 Python 与 Java,下面简单介绍一下如何使用,具体可参看原文章。最后重点提供一个 Java 的通用工厂方法,用来调用 Thrift 提供的接口。 ...
上篇文章中讲到了基于 logback 的配置。这里补充 Log4J 的配置及其对应的 Logstash 收集端的配置。 log4j.properties 配置 添加一个appender,把日志发送到远端地址: # Logstash appender log4j.appender.logstash=org.apache.log4j.net.SocketAppender log4j.appender.logstash.RemoteHost=IP地址 log4j.appender.logstash.port=端口 log4j.appender.logstash.Threshold=INFO log4j.appender.logstash.ReconnectionDelay=10000 log4j.appender.logstash.LocationInfo=true 把这个 appender 添加到 rootLogger 中: ...