最近,有一个小伙伴拿到了自己满意的Offer,和他交谈的过程中得知他面试官问他关于Spring的问题比较多,其中最让面试官满意的就是自己回答关于Spring 5的知识点回答的不错. Spring5于2017年9月发布了通用版本,它是自2013年12月以来第一个主要的Spring版本.它提供了一些人们期待已久的改进,还采用了一种全新的编程范例,以反应式原则为基础. 这个版本是很长时间以来最令人激动的版本.Spring 5兼容Java™8和JDK 9,它集成了反应式流,以方便后续提供一种颠覆性方法来…
2019.01.23 期待已久的Spring Cloud Greenwich 发布了release版本,作为我们团队也第一时间把RC版本替换为release,以下为总结,希望对你使用Spring Cloud Greenwich 有所帮助 Greenwich 只支持 Spring Boot 2.1.x 分支.如果使用 2.0.x 请使用Finchley版本, pom坐标 主要是适配JAVA11 <!--支持Spring Boot 2.1.X--> <dependency> <g…
写在前面 最近,一位读者出去面试前准备了很久,信心满满的去面试.没想到面试官的一个问题把他难住了.面试官的问题是这样的:如何使用Spring将Service注入到Servlet中呢?这位读者平时也是很努力的,看什么源码啊.多线程啊.高并发啊.设计模式啊等等.没想到却在一个很简单的问题上栽了跟头,这就说明学习知识要系统化,要有条理,切忌东学一点,西记一点,否则,到头来,啥也学不到. 项目工程源码已经提交到GitHub:https://github.com/sunshinelyz/spring-an…
java8:http://ifeve.com/java-8-features-tutorial/ 一.Lambda表达式和函数式接口 Lambda表达式(也叫做闭包) 它允许我们将一个函数当作方法的参数(传递函数),或者说把代码当作数据 Lambda表达式可以用逗号分隔的参数列表.->符号和功能语句块来表示 Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println(…
一.概述: Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring Cache特点: Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 co…
Finchley 正式版的发布貌似经历了相当长的时间,这次的重大发布主要带来了以下 4 项重大更新. 重大更新 1.新增 Spring Cloud Gateway 组件 Spring Cloud Gateway 是一个基于 Spring Webflux 和响应式 Netty 的下一代 API 网关,用来替换 Spring Cloud Netflix Zuul.它提供了更加简单的动态路由,以及针对每个路由的过滤器(如地址重写.断路器.添加/删除请求头.限流和安全等). 2.新增 Spring Cl…
分析SpringBoot的自动化配置原理的时候,可以观察下这些@Enable*注解的源码,可以发现所有的注解都有一个@Import注解.@Import注解是用来导入配置类的,这也就是说这些自动开启的实现其实是导入了一些自动配置的Bean. 如:freemarker的自动化配置类FreeMarkerAutoConfiguration,这个自动化配置类需要classloader中的一些类需要存在并且在其他的一些配置类之后进行加载. 但是还存在一些自动化配置类,它们需要在使用一些注解开关的情况下才会生…
前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息.ZooKeeper的信息.数据库连接.Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆,一旦在部署的时候某个参数忘记修改了,那么就必须重新打包部署,这确实让人感到非常头疼.因此就想到使用Spring中的Profile来解决上面描述的问题,并且在此记录一下其使用的方式,如果有不对的地方,请指正!(感谢).本文从如下3方面探讨Spring的Profile: Spring中的Profi…
https://www.ibm.com/developerworks/cn/java/j-lo-jparelated/ http://www.ibm.com/developerworks/cn/java/j-lo-jpasimpemap/ https://www.ibm.com/developerworks/cn/java/j-lo-hibernatejpa/ http://www.ibm.com/developerworks/cn/java/j-lo-openjpa6/ JPA(Java Pe…
高效并发是JDK 1.6的一个重要主题,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning).锁削除(Lock Elimination).锁膨胀(Lock Coarsening).轻量级锁(Lightweight Locking).偏向锁(Biased Locking)等,这些技术都是为了在线程之间更高效地共享数据,以及解决竞争问题,从而提高程序的执行效率. 13.3.1 自旋锁与自适应自旋 前面我们讨论互斥同步的时候,…
最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式 数据库H2.这里面就有个问题了,如何用一套代码,提供对Mysql和H2两种方案的支持?博主收集了一些资料,也调试了很久,终于找到一套可行方案,记 录下来.代码贴的有点多,主要是为了以后方便自己查找. H2的使用 H2是一个嵌入式,纯Java实现的数据库,它各方面都要好于Java的sqlitejdbc.它可以使用内存模式,也可以使用磁盘模式.具体使用可以看攻略:…
Atitit spring 3.0 3.1 3.2 4.0 4.3 5.0 新特性 Spring3.0的新特性及其分析 - 我的人生不甘于平庸! - ITeye技术网站.html Spring3.0带来的新特性 - 未来之路 - 博客频道 - CSDN.NET.html Spring 3.1 新特性一览表 - 开源中国社区.html Spring 3.2三个值得关注的新特性 - 51CTO.COM.html Spring 4.3 的新功能和增强 - ImportNew.html Spring 4…
前言 Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成. 很多人刚学时分不清Spring Web/Spring MVC有什么区别 spring-web模块提供基本的面向Web的集成功能,例如多文件上传功能和使用Servlet监听器和面向Web的应用程序上下文来初始化IoC容器. 它还包含一个HTTP客户端和Web的相关部分的Spring的远程支持. spring-w…
这是一篇总结文章,主要收集 Spring Boot 2.0 相对于 Spring Boot 1.x 的新特性,本章节并不提供实践性质的源代码.在 Spring Boot 系列文章中会持续退出实践章节. 从 Spring Boot 1.5 开始升级 如果要从 Spring Boot 1.5 升级到 Spring Boot 2.0 可能要花费一些实际,可以参考 官方迁移指南 ,中文版本迁移指南 如果是更老的版本,请参考Upgrading from Spring Boot 1.4 迁移指南 当然,你可…
官方说明: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes 起码 JDK 8 和支持 JDK 9 Spring Boot 2.0 要求 Java 8 作为最低版本.许多现有的 API 已更新,以利用 Java 8 的特性,例如:接口上的默认方法,函数回调以及新的 API,如javax.time.如果您当前正在使用 Java 7 或更早版本,则在开发 Spring Boot 2.0…
写在前面 如果你出去面试,面试官问了你关于Java8 Stream API的一些问题,比如:Java8中创建Stream流有哪几种方式?(可以参见:<[Java8新特性]面试官问我:Java8中创建Stream流有哪几种方式?>)Java8中的Stream API有哪些中间操作?(可以参见:<[Java8新特性]Stream API有哪些中间操作?看完你也可以吊打面试官!!>)如果你都很好的回答了这些问题,那么,面试官可能又会问你:Java8中的Stream API有哪些终止操作呢…
JDK 8, Oracle's implementation of Java SE 8. JDK 8 是 Oracle 对 Java SE 8 规范的实现. 本文分析 JDK 8 引入的新特性. 官方文档:http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html. 1.Java programming language 在 Java 语言层面,最大的改动是: 引入了 lambda 表达式: 引入了 default…
程序员面试系列 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Java Marker Interface(标记接口) 使用JDK自带的工具jstack找出造成运行程序死锁的原因 编程面试题:编写一个会造成数据库死锁的应用 JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载 面试题:用JavaScript开发一个函数,打印非波拉契数列. 我们只要记住非…
总览 讲讲Java 9-17 的一些语法糖和一些新发布的jeps, 重点讲讲JVM的垃圾回收器 时间线 SpringBoot 为什么选择Java17这个版本.我估计跟下面这个图有关系. Java 8 新特性 这里简单罗列一下Java 8 发布的jeps 1.Lambda表达式 2.函数式编程 3.接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法 4.方法引用 5.重复注解,同一个注解可以使用多次 6.引入Optional来避免空指针 7.引入Streams相关的API 8.引入新…
1.Spring4.0的新特性 从2004年Spring的1.0发布后,后面又发布了很多重要的版本:Spring2.0提供了XML命令空间和AspectJ的支持:Spring2.5提出了注解驱动(annotation-driven)配置:Spring3.0引入了跨框架代码库的java 5+.基于java的Configuration模型等. Spring 4.0是最近发布的主要版本,而且对java8完全支持.当然,你可以继续使用低版本的java,但最低只能是java SE6.Spring 4.0里…
有众多新特性和函数库的Java 8发布之后,Spring 4.x已经支持其中的大部分.有些Java 8的新特性对Spring无影响,可以直接使用,但另有些新特性需要Spring的支持.本文将带您浏览Spring 4.0和4.1已经支持的Java 8新特性. Spring 4支持Java 6.7和8 Java 8编译器编译过的代码生成的.class文件需要在Java 8或以上的Java虚拟机上运行.由于Spring对反射机制和ASM.CGLIB等字节码操作函数库的重度使用,必须确保这些函数库能理解…
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介 Spring4.1新特性——静态资源处理增强 Spring 4.1提供了对jcach…
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介 Spring4.1新特性——静态资源处理增强 Spring 4.1对Spring M…
上一篇<Spring集成RabbitMQ-使用RabbitMQ更方便>中,我们只需要添加响应jar的依赖,就可以写一个Spring集成RabbitMQ下非常简单收发消息的程序. 我们使用的spring-rabbit的版本是当前官方最新的2.0.0.M5,这篇主要介绍下最新版本的spring amqp相对老版本有哪些新特性和升级. 常规改进 ExchangeBuilder在该版本中默认会创建持久化的exchange,就是我们熟悉的durable属性 @QueueBinding注解中用到的@Exc…
Spring Framework 5.0是在Spring Framework 4.0之后将近四年内一次重大的升级. 在这个时间框架内,主要的发展之一就是Spring Boot项目的演变. Spring Framework 5.0的最大特点之一是响应式编程(Reactive Programming). 响应式编程核心功能和对响应式endpoints的支持可通过Spring Framework 5.0中获得. 重要变动如下列表所示: 常规升级 对JDK 9运行时兼容性 在Spring Framewo…
Spring5 是一个重要的版本,距离SpringFramework4差不多四年.在此期间,大多数增强都是在 SpringBoot 项目中完成的.在本文中,我们将很快了解到Spring5发行版中的一些令人兴奋的特性. 1. 基准升级 要构建和运行 Spring5 应用程序,你至少需要 J2EE7 和 JDK8.以前的 JDK 和 JavaEE 版本不再支持. JavaEE7 包含: Servlet 3.1 JMS 2.0 JPA 2.1 JAX-RS 2.0 Bean Validation 1.…
就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring Boot官方又赶紧把 GitHub 上发布的 v2.0.0.RELEASE 版本进行了撤回.到了下午将问题修复后,又重新进行了上传,至此Spring Boot2.0正式推出! 要知道这是Spring Boot1.0发布4年之后第一次重大修订,因此有多的新功能和特性值得大家期待!在S…
https://www.ibm.com/developerworks/cn/java/j-whats-new-in-spring-framework-5-theedom/index.html Spring 5 于 2017 年 9 月发布了通用版本 (GA),它标志着自 2013 年 12 月以来第一个主要 Spring Framework 版本.它提供了一些人们期待已久的改进,还采用了一种全新的编程范例,以反应式宣言中陈述的反应式原则为基础. 这个版本是很长时间以来最令人兴奋的 Spring…
以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持. 内嵌容器包结构调整 为了支持reactive使用场景,内嵌的容器包结构被重构了的幅度有点大.EmbeddedServletContainer被重命名为WebServer,并且org.springframework.boot.context.embedded 包被重定向到了org.springframework.boot.web.embedded包下.举个例子,如果你要使用To…
作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中的重要开源项目,Spring Boot 旨在简化创建产品级的 Spring 应用和服务.用户只需要"run"就能创建一个独立的,产品级别的 Spring 应用. 一经发布,Spring Boot 就迅速受到了开发者的亲睐,到目前为止,它已经有超过 2 万个 Star,1.6 万个 fork…