MoDou Blog

Thinking will not overcome fear but action will.

如何在Spring中使用责任链设计模式

如何在Spring中使用责任链设计模式

如何在Spring中使用责任链设计模式 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 本片文章不是讲Spring源码中使用责任链的设计实例,而是会讲在Spring中如何设计自己的责任链并且如何调用。 责任链设计模式作为我们常用的设计模式之一,用途非常的广,例如在一些流程化的执行中、或者是一些动态拦截中我们都可以使用责任链设计模式进行设计需求,从而使我们的项目无论是可用性...

Spring事务传播属性有那么难吗?看这一篇就够了

Spring事务传播属性有那么难吗?看这一篇就够了

Spring事务传播属性有那么难吗?看这一篇就够了 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 学习东西要知行合一,如果只是知道理论而没实践过,那么掌握的也不会特别扎实,估计过几天就会忘记,接下来我们一起实践来学习Spring事务的传播属性。 传播属性 传播属性定义的是当一个事务方法碰到另一个事务方法时的处理行为,一共有七种行为,定义如下 ...

后端框架开发需要注意的几点

后端框架开发需要注意的几点

后端框架开发需要注意的几点 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 跌跌撞撞了在程序员的道路上也有一年的时间了,慢慢的觉得这一年的工作大部分时间都是在简单的CRUD中度过,而有时候我们在CRUD中有多少重复性的代码呢?有些代码我们每次写都需要重复性的写一次,不仅浪费时间,而且对于自己提升并没有多大的提高。无意中看到了程序员你为什么这么累文章后,才幡然醒悟,为什么我们...

压缩20M文件从30秒到1秒的优化过程

压缩20M文件从30秒到1秒的优化过程

压缩20M文件从30秒到1秒的优化过程 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去。之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间。压缩文件的代码如下。 public stat...

被代理过后的类属性值消失了?

被代理过后的类属性值消失了?

被代理过后的类属性值消失了? 前言 在使用SpringBoot开发时,我们如果要用到自定义的值,我们通常做法是在Yml配置文件配置相应的属性,然后在类中配置相应的配置文件获得属性值。例如我们在Yml中有下面一个属性值 test: value: secondAgent 那么我们可以在类中做如下配置就可以从中取出值 @Component public class GetValu...

Java8——异步编程

Java8——异步编程

Java8——异步编程 异步编程 所谓异步其实就是实现一个无需等待被调用函数的返回值而让操作继续运行的方法 创建任务并执行任务 无参创建 CompletableFuture<String> noArgsFuture = new CompletableFuture<>(); 传入相应任务,无返回值 runAsync方法可以在后台执行异步计算,但...

SpringBoot 2.0 多图片上传加回显

SpringBoot 2.0 多图片上传加回显

SpringBoot 2.0 多图片上传加回显 这两天公司有需求让做一个商户注册的后台功能,其中需要商户上传多张图片并回显。由于之前没做过这方面的东西,此篇文章用以记录一些知识点,以便后续查看。 上传 Controller的代码非常简单,由于用了SpringMVC框架,所以直接用MultipartFile来接即可。由于是多图片上传所以用数组来接。此处应该注意参数名应该和<inpu...

如何自己手写一个热加载

如何自己手写一个热加载

如何自己手写一个热加载 热加载:在不停止程序运行的情况下,对类(对象)的动态替换 Java ClassLoader 简述 Java中的类从被加载到内存中到卸载出内存为止,一共经历了七个阶段:加载、验证、准备、解析、初始化、使用、卸载。 接下来我们重点讲解加载和初始化这两步 加载 在加载的阶段,虚拟机需要完成以下三件事: 通过一个类的全限定名来获取定义此类的二进...

死磕Tomcat系列(6)——Tomcat如何做到热加载和热部署的

死磕Tomcat系列(6)——Tomcat如何做到热加载和热部署的

死磕Tomcat系列(6)——Tomcat如何做到热加载和热部署的 热部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。 通常情况下在开发环境中我们使用的是热加载,因为热加载的实现的方式在Web容器中启动一个后台线程,定期检测相关文件的变化,如果有变化就重新加载类,这个过程不会清空Session。而在生产环境我们一般应用的是热部署,热部署也是...

关于Redis热点key的一些思考

关于Redis热点key的一些思考

关于Redis热点key的一些思考 昨天在和一个已经跳槽的同事聊天时,询问他这段时间面试时碰到的一些问题。自己也想积累一下这方面的知识。其中他说了在面试某赞公司时面试官问他关于热点Key的的解决方案。于是针对这次谈话以及上网查的一些资料后的思考进行一下总结。方便后续自己查阅。 什么是热点Key 其实对于热点Key,网上一查一大堆,这里我就引用网上的一段话。 从基于用户消费的数据远远大...