为什么要使用RestTemplate? 随着微服务的广泛使用,在实际的开发中,客户端代码中调用RESTful接口也越来越常见.在系统的遗留代码中,你可能会看见有一些代码是使用HttpURLConnection来调用RESTful接口的,类似于下面这样: URL url = ... // 打开连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); try { conn.setRequestMethod("POST&…
Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题. 其实笔者本人对这类框架源码题还是持一定的怀疑态度的. 如果笔者作为面试官,可能会问一些诸如"如果注入的属性为null,你会从哪几个方向去排查"这些场景题. 那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么. 正文 通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景. 比如几个Bean之间的互相引用: 甚至自己…
上一篇文章讲解了获取事务,并通过获取的connection设置只读,隔离级别等:这篇文章讲事务剩下的回滚和提交. 事务的回滚处理 之前已经完成了目标方法运行前的事务准备工作.而这些准备工作的最大目的无非就是对于程序没有按照我们期待的那样进行,也就是出现特定的错误:那么当出现错误的时候Spring是怎么对数据进行恢复的呢?我们先来看一下TransactionAspectSupport类里的invokeWithinTransaction函数的completeTransactionAfterThrow…
Spring的RestTemplate及大地简化了REST Client的开发,但每次还要编写大量的模板代码,代码不够简洁.我对他进行了一次包装,采用接口来声明REST接口,使用Annotation对interface的方法进行标注.如下声明一个REST接口 //接口必须继承BaseRestClient,提供了一个setUrl的基本方法. public interface ITestRest extends BaseRestClient { //声明一个REST方法,method是GET,在路径…
Spring’s RestTemplate /** * After the word document is generated in memory we can upload it to the server. * * @param fileContents The byte array we're wanting to POST * @param filename The name of the file you're uploading. You can make yours up if…
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e894d 简书:https://www.jianshu.com/u/cb1c3884e6d5 微信公众号:土豆妈的碎碎念(扫码关注,一起吸猫,一起听故事,一起学习前端技术) 欢迎大家扫描微信二维码进入群聊讨论(若二维码失效可添加微信JEmbrace拉你进群) 码字不易,点赞鼓励哟~ 温馨提示 本篇文章…
微信搜「烟雨星空」,白嫖更多好文. 现在 Oracle 官方每隔半年就会出一个 JDK 新版本.按时间来算的话,这个月就要出 JDK15 了.然而,大部分公司还是在使用 JDK7 和 8 . 之前去我朋友家,竟然被嘲笑不会用 JDK8 . 不服气的我,回来之后,当然是重点学习之啊. 话不多说,本文目录如下: 目录: lambda 表达式 接口默认方法和静态方法 函数式接口 方法引用 Optional Stream API 日期时间新 API 一.lambda表达式 先看下 lambda 表达式是…
回顾一下Spring AOP的知识 为什么会有面向切面编程(AOP)? 我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为,例如日志.权限验证.事务等功能时,只能在在每个对象里引用公共行为.这样做不便于维护,而且有大量重复代码.AOP的出现弥补了OOP的这点不足. Spring AOP 中设计的一些核心知识,面试问题? 1.能说一下Spring AOP用的是哪种设计模式? 回答:代理模式.   2. 能简单聊一下你对代理模式的…
随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那么多,可能做java很多年,都用不上.这里按照类型总结了这7种最常用的注解. 一. 核心注解 @Required 此注解用于bean的setter方法上.表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion. @Autowired 此注解用于bean…
一.REST 在互联网中,我们会通过请求url来对网络上的资源做增删改查等动作,这里的请求包含两部分:动词,主要包括增.删.改.查:名词,就是网络中的各种资源.传统的非REST风格的请求方式是把动词和名词全都放在url中.例如,对设备的操作可能是这样的:添加设备:http://test/device/add删除设备:http://test/device/delete修改设备:http://test/device/modify查找设备:http://test/device/find这样就存在一个规…