首页
学习
活动
专区
工具
TVP
发布

CodingToDie

专栏作者
81
文章
211425
阅读量
29
订阅数
风控规则引擎(二):多个条件自由组合的实现,如何将 Java 字符串转换成 Java 对象
在上一篇中介绍了一个单独的动态表达式是如何执行的,这里讲一下多个表达式不同组合情况下的实现。这里主要介绍下面 2 种情况的设计,其他可自行扩展
双鬼带单
2023-12-18
2700
风控规则引擎(一):Java 动态脚本
这种方式代码简单,如果规则简单且不经常变化可以通过这种方式,在业务改变的时候,重新编写代码即可。
双鬼带单
2023-12-04
4460
​Java | Spring Cloud Gateway 使用和一些实现细节
所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、路由转发等。
双鬼带单
2021-07-20
1.7K0
Druid 异常分析 java.sql.SQLException: interrupt Druid
今天看线上一直报 java.sql.SQLException: interrupt 因为第一次遇到也在网上找了一些资料,其中网上的大部分内容如下:
双鬼带单
2021-05-13
8.5K1
Java | ​实现一个简单的 IOC 容器 (一)
这篇文章主要讲一下如何使用 Java 实现一个简单的 IOC 容器,这里该系列的第一篇,要实现的内容的也相对简单,主要介绍一下 B 依赖 A 这种简单的关系是怎么实现的
双鬼带单
2021-03-19
1.2K0
Java | Spring Cloud Gateway 是如何工作的
负责转发请求的 NettyRoutingFilter负责将响应回写到原连接的 NettyWriteResponseFilter如何实现负载均衡的总结参考扩展阅读鸣谢
双鬼带单
2021-03-19
2.4K0
Java | zuul 1.x 是如何实现请求转发的
简介实现逻辑源码基于 Servlet 的请求转发ZuulServlet 核心代码ZuulRunner 核心代码RequestContext 核心代码FilterProcessor 核心代码在官方示例中,提供了两个简单的 Route 的 ZuulFilter 实现总结参考
双鬼带单
2021-03-19
6810
Java | 实现一个ORM比你想象的还要简单
原理ORM 实现1. 通过注解来将 Java Bean 和数据库字段关联2. 反射工具类3. 简单的 model 示例4. 注解解析5. 数据库操作6. 结合反射实现查询操作使用动态代理实现 @Query @Select 类似功能1. 动态代理2. 注解3. 表设计4. model5. repository7. 大体流程8. 代理使用9. 将生成代理放入 Spring IOC 容器中10. invoke方法处理
双鬼带单
2021-03-18
1.3K0
Java | 实现一个简单的 IOC 容器 (一)
这篇文章主要讲一下如何使用 Java 实现一个简单的 IOC 容器,这里该系列的第一篇,要实现的内容的也相对简单,主要介绍一下 B 依赖 A 这种简单的关系是怎么实现的
双鬼带单
2021-03-13
3660
今天 1024,为了不 996,Lombok 用起来以及避坑指南
Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注解,用来消除 Java 类中的大量样板代码。
双鬼带单
2020-10-29
6280
JAVA | Guava EventBus 使用 发布/订阅模式
EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。
双鬼带单
2020-08-27
7K0
0005 Java 包扫描实现和应用(Jar篇)
如果你曾经使用过 Spring, 那你已经配过 包扫描路径吧,那包扫描是怎么实现的呢?让我们自己写个包扫描
双鬼带单
2020-07-27
7360
JAVA | Java 解决跨域问题 花式解决跨域问题
我们在开发过程中经常会遇到前后端分离而导致的跨域问题,导致无法获取返回结果。跨域就像分离前端和后端的一道鸿沟,君在这边,她在那边,两两不能往来.
双鬼带单
2020-07-27
10.5K0
不会吧,有人用了两年Spring, 居然不知道包扫描是怎么实现的
如果你曾经使用过 Spring, 那你已经配过 包扫描路径吧,那包扫描是怎么实现的呢?让我们自己写个包扫描
双鬼带单
2020-07-27
3570
如何编写高质量的代码
Java开发中通用的方法和准则不要在常量和变量中出现易混淆的字母枚举类中不要提供setter三元操作符的类型务必一致避免带有变长参数的方法重载少用静态导入避免为final变量复杂赋值break万万不可忘避免instanceof非预期结果基本类型不要让四舍五入亏了一方提防包装类型的null值谨慎包装类型的大小比较类、对象及方法在接口中不要存在实现代码构造函数尽量简化使用静态内部类提高封装性让工具类不可实例化覆写equals方法时不要识别不出自己推荐覆写toString方法使用package-info类为包服务数组和集合在明确的场景下,为集合指定初始容量避开基本类型数组转换列表陷阱asList方法产生的List对象不可更改子列表只是原列表的一个视图推荐使用subList处理局部列表生成子列表后不要再操作原列表使用Comparator进行排序不推荐使用binarySearch对列表进行检索;集合中的元素必须做到compareTo和equals同步;使用shuffle打乱列表;减少HashMap中元素的数量;多线程使用Vector或HashTable;非稳定排序推荐使用List枚举和注解推荐使用枚举定义常量;使用构造函数协助描述枚举项;小心switch带来的空值异常;在switch的default代码块中增加AssertionError错误;使用valueOf前必须进行校验;枚举项的数量控制在64个以内;小心注解继承;枚举和注解结合使用威力更大;注意@Override不同版本的区别;泛型和反射强制声明泛型的实际类型;不同的场景使用不同的泛型通配符;严格限定泛型类型采用多重界限;注意Class类的特殊性;适时选择getDeclaredXXX和getXXX;反射访问属性或方法是将Accessible设置为true;使用forName动态加载类文件;动态代理可以使代理模式更加灵活;使用反射增加装饰模式的普适性;反射让模板方法模式更强大;不需要太多关注反射效率;异常提倡异常封装;采用异常链传递异常;受检异常尽可能转化为非受检异常;不要在finally块中处理返回值;多使用异常,把性能问题放一边;多线程和并发不推荐覆写start方法;启动线程前stop方法是不可靠的;不适用stop方法停止线程;线程优先级只使用三个等级;使用线程异常处理器提升系统可靠性;volatile不能保证数据同步;异步运算考虑使用Callable接口;优先选择线程池;适时选择不同的线程池来实现;Lock与synchronized是不一样的;预防线程死锁;适当设置阻塞队列长度;使用CountDownLatch协调子线程;CyclicBarrier让多线程齐步走;开源世界大胆采用开源工具;推荐使用Guava扩展工具包;Apache扩展包;推荐使用Joda日期时间扩展包;可以选择多种Collections扩展;思想为源提倡良好的代码风格;不要完全依靠单元测试来发现问题;让注释正确、清晰、简洁;让接口的职责保持单一;增强类的可替换性;依赖抽象而不是实现;抛弃7条不良的编码习惯;以技术人员自律而不是工人
双鬼带单
2020-07-25
9710
不会吧,有人用了两年Spring, 居然不知道包扫描是怎么实现的
<h1> 全栈的自我修养: 0004 Java 包扫描实现和应用(File篇) </h1>
双鬼带单
2020-07-14
5400
Github 最受欢迎的java项目
微信公众号:777开发日志 新年寄语:苟日新 日日新 又日新 如果能够一天新,就应保持天天新,新了还要更新。 我们要努力革新自己,坚持学习,下面给大家统计github最受欢迎项目,一起学习 内容目录 截止目前github最受欢迎的项目 截止目前github最受欢迎的项目 截止目前github最受欢迎的项目 项目名称 仓库 地址 star 描述 java-design-patterns iluwatar/java-design-patterns git://github.com/iluwatar/java-d
双鬼带单
2019-05-07
1.5K0
Github 最受欢迎的java项目
内容目录 截止目前github最受欢迎的项目 截止目前github最受欢迎的项目 截止目前github最受欢迎的项目 项目名称 仓库 地址 star 描述 java-design-patterns iluwatar/java-design-patterns git://github.com/iluwatar/java-design-patterns.git 43459 Design patterns implemented in Java elasticsearch elastic/elasticsear
双鬼带单
2019-03-07
2.7K0
JPA @Query实现,动态代理,注解, 正则,Spring扩展的使用
上一篇文章中提到了如何使用注解完成一个简单的ORM,其中注解使用 JavaPersistenceAPI 但是其中没有我们需要的 @Query 和 @Param 这里我们自定义一下这两个注解,同时为了让Query支持返回主键,在定义一个 ReturnGeneratedKey 注解
双鬼带单
2018-12-05
2.3K0
Python学习(七):模块 优雅的封装
第7 章 模块 优雅的封装 Table of Contents Python中的模块 使用模块 定义模块 建议 模块的安装 模块搜索路径 作用域 编程是一种美德,是促使一个人不断向上发展的一种原动力。 Python中的模块 当我们的代码越写越多,开发的人数越来越多的时候,为了更高效的复用某个代码片段,方法,对象等,这时我们可以把常用的代码,放在一起,使用的人只需要利用这个文件中的代码就可以轻松的实现某些功能,例如上篇中提到了的 power(x,n) 和 create_account(email,passw
双鬼带单
2018-03-29
7.3K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档