自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

最后一个NPE

最后一个NPE

  • 博客(5)
  • 收藏
  • 关注

原创 谈谈传统BIO网络编程模型的局限性与NIO

先来看看我们的server端:创建一个serversocket,进行监听,每来一个客户端,就启动一个新启动为其服务:private void createListenSocket() { //如果创建监听socket的时候发生异常,将会隔WAIT_TIME毫秒重试,直到成功 while (true){ try { ...

2019-04-25 12:28:52 365

原创 使用AOP来实现接口请求频率限制

老规矩,定义一个注解:/** 被该注解修饰的方法都会被切面拦截进行请求次数限制*/@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Limit { int maxRequestPerMinute();}我们在想要进行频率限制的方法上添加注解:@Reque...

2019-04-20 13:15:31 2305 1

原创 使用AOP实现权限拦截校验

aop的好处就在于它可以只让你写一次代码,然后这些代码就可以用于容器当中的所有对象,权限拦截校验是一个表现形式。那么,我们要如何实现这个功能?首先,定义一个注解:/** 被该注释修饰的方法都会经过切面拦截校验权限*/@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface ...

2019-04-14 11:14:51 1941

原创 无限树型菜单分类

有这么样一个需求:将以下二维记录转成一个树型菜单很明显,结果将是森林。那么这里提供一个通用算法,来实现菜单的转换。首先,将所有记录读入:List<Department> departments = departmentMapper.selectAllDepartment();其次,使用一个哈希表,将各部门id与部门实例进行映射:Map<In...

2019-04-08 13:13:09 457

原创 个人对三层架构的看法

java web开发当中,有这么三层:controller、service、dao分别为表现层、业务逻辑层以及数据访问层。这样分层的好处有很多,出了问题易于调试,或者便于团队合作等等。最重要的是,可以随时换掉其中的某一层而不影响其他层,这都是借鉴于早期的程序设计经验,计算机网络体系也是这么设计的。在我初学时,总是认为service层就是个累赘,认为它只是对请求的转发,但是随着学习的...

2019-04-02 14:21:47 317

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除