Spring
文章平均质量分 92
dadiyang
Coding like writing poetry.
展开
-
把 Excel 当作一种协议来看,代码实现起来就简单多了
提出问题日常工作中,我们经常会遇到使用 Excel 批量导入的需求,正常情况下,我们会在 Controller 中接收前端传过来的文件流,并进行解析@RequestMapping("importExcel")public ResultDTO<List<UserExcelDTO>> importExcel(@RequestParam("file") MultipartFile file) { try (InputStream in = file.getInputStr原创 2022-01-29 18:29:20 · 2182 阅读 · 0 评论 -
Spring AOP 最热门面试题及答案
译者的话前几天去京东面试,被问到 AOP 相关的问题,之前一直没有系统地学习相关的知识,答得不是很好。趁着假期,找了一下相关的资料,CSDN上有很多不错的文章,看了之后对 AOP 有比较好的理解了。然后 Google 了一下 AOP 相关面试题(AOP interview),搜出来的第一条结果是一个叫 HowToDoInJava 的网站上的一篇文章 Top Spring AOP Intervie...翻译 2018-10-02 00:15:16 · 96111 阅读 · 13 评论 -
SpringBoot使用@RunWith(Parameterized.class)进行参数化测试同时支持依赖注入,以及CommandLineRunner在单元测试时不执行主进程
问题提出在使用SpringBoot进行单元测试的时候,我发现了两个问题使用参数化测试的时候,必须使用 @RunWith(Parameterized.class),而对Spring进行单元测试时,如果想使用依赖注入,即使用 @Autowired 注解,需要使用 @RunWith(SpringRunner.class) 。两个不能同时使用。如果 SpringBootApplication 在启...原创 2018-10-14 14:36:28 · 5909 阅读 · 2 评论 -
WebSocket使用SockJS原来可以这么简单(附Spring实现完整实例)
基于 SockJS 的 WebSocket在学习 《Spring实战》 第18章的时候才知道,原来在不支持WebSocket的情况下,也可以很简单地实现WebSocket的功能的,方法就是使用 SockJS。它会优先选择WebSocket进行连接,但是当服务器或客户端不支持WebSocket时,会自动在 XHR流、XDR流、iFrame事件源、iFrame HTML文件、XHR轮询、XDR轮询、...原创 2018-11-04 14:19:44 · 27140 阅读 · 0 评论 -
AOP实战:一个面向切面的实战项目,方法级别的简单监控
AOP实战:一个面向切面的实践项目,方法级别的简单监控背景在开发过程中,我们经常会需要对方法进行一些简单的监控,例如监控某个方法的执行时间,必要的时候打印入参和返回值,对抛出的异常进行监控。这样的一些监控点虽然很小,但是这些重复的代码散落在各处而且侵入到业务逻辑当中让业务代码显得非常杂乱。因此,将这个切面抽离出来变得非常有意义,所以有了本项目。(完整代码请查看 simplemonitor)...原创 2018-11-20 02:12:31 · 2938 阅读 · 0 评论 -
Java如何优雅地调用发送HTTP请求,支持上传和下载文件(GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS/TRACE)
HTTP接口调用框架项目地址:https://github.com/dadiyang/http-api-invoker让http调用跟本地方法调用一样自然优雅将http请求url和接口绑定,由框架生成接口的代理类,直接调用接口的方法就会自动构建请求参数并发送请求,然后处理请求响应转换为接口方法的返回值返回(支持泛型)。若与 Spring 集成(可选),更能使用 @Autowired 进行自...原创 2018-12-22 23:21:32 · 4634 阅读 · 10 评论 -
CentOS6和CentOS7环境下RabbitMQ安装配置和非ROOT权限启动及集群搭建最完整教程
前言最近负责的一个项目需要使用 WebSocket 做前后端通信,我使用了Spring提供支持的STOMP协议,它可以解决 WebSocket 消息的语义化和集群状态下各集群节点之间消息共享的问题,例如用户连接了机器 A,但是机器 B需要知道该用户的在线状态和向这个用户推送消息。这是WebSocket集群状态下必然要面对的问题。传统的做法是使用分布式session、redis或者通过消息队列来...原创 2019-01-04 14:26:25 · 4207 阅读 · 1 评论 -
Spring 参数校验最佳实践(附完整实例)
前言在 Web 开发中, 我们经常需要校验各种参数,这是一件繁琐又重要的事情,对于很多人来说,在做参数校验的时候,会有以下几种类型的处理方式:甩锅型校验太麻烦了,让客户端去负责校验就行了,调用方传错了是调用方的问题,不是服务的问题,甩个 500 错误让他们好好反省:劳模型有多少参数,我就写多少个 if 语句做判断,校验不通过的都写一句友好的提示,如:工具型自己写个参数校验的通用工...原创 2019-06-03 13:02:14 · 6822 阅读 · 3 评论 -
【深度好文】深度分析如何获取方法参数名
发现问题对Java字节码有一定了解的朋友应该知道,Java 在编译的时候,默认会将方法参数名丢弃,因此我们无法在运行时获取参数名称。但是在使用 SpringMVC 的时候,我发现一个奇怪的现象,当我们需要接收请求参数的时候,相应的 Controller 方法只需要正常声明,就可以直接接收正确的参数,例如:注:以下例子使用 maven 进行编译,且非 SpringBoot 项目,SpringB...原创 2019-06-18 13:46:04 · 1156 阅读 · 0 评论