一.概述: Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring Cache特点: Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 co…
高效并发是JDK 1.6的一个重要主题,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning).锁削除(Lock Elimination).锁膨胀(Lock Coarsening).轻量级锁(Lightweight Locking).偏向锁(Biased Locking)等,这些技术都是为了在线程之间更高效地共享数据,以及解决竞争问题,从而提高程序的执行效率. 13.3.1 自旋锁与自适应自旋 前面我们讨论互斥同步的时候,…
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…
最近,有一个小伙伴拿到了自己满意的Offer,和他交谈的过程中得知他面试官问他关于Spring的问题比较多,其中最让面试官满意的就是自己回答关于Spring 5的知识点回答的不错. Spring5于2017年9月发布了通用版本,它是自2013年12月以来第一个主要的Spring版本.它提供了一些人们期待已久的改进,还采用了一种全新的编程范例,以反应式原则为基础. 这个版本是很长时间以来最令人激动的版本.Spring 5兼容Java™8和JDK 9,它集成了反应式流,以方便后续提供一种颠覆性方法来…
atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScript描述了该语言的语法和基本对象 •文档对象模型(DOM)--DOM描述了处理网页内容的方法和接口 •浏览器对象模型(BOM)--BOM描述了与浏览器进行交互的方法和接口 所有的主流 Web 浏览器都遵守 ECMA-262 第三版,即实现的是JavaScript 1.5版,JavaScript 1.6…
ECMAScript简介: 它是一种由Ecma国际(前身为欧洲计算机制造商协会)制定和发布的脚本语言规范,javascript在它基础上经行了自己的封装.但通常来说,术语ECMAScript和javascript指的是同一个.业界所说的ECMAScript其实是指一种规范,或者说是一个标准.具体点来说,它其实就是一份文档 JS包含三个部分:ECMAScript(核心).DOM(文档对象模型).BOM(浏览器对象模型),ECMAScript是js语言的基础. (1) ECMAScript3新增了对…
ECMAScript和JavaScript的区别 ECMA是European Computer Manufacturers Association的缩写,即欧洲计算机制造商协会.欧洲计算机制造商协会是制定信息传输与通讯的国际化标准组织.ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMAScript-262.ECMAScript被国际化标准组织采纳为ISO/IEC 16262. ECMAScript发展更新历史总结: ecma sc…
以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…
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…
Finchley 正式版的发布貌似经历了相当长的时间,这次的重大发布主要带来了以下 4 项重大更新. 重大更新 1.新增 Spring Cloud Gateway 组件 Spring Cloud Gateway 是一个基于 Spring Webflux 和响应式 Netty 的下一代 API 网关,用来替换 Spring Cloud Netflix Zuul.它提供了更加简单的动态路由,以及针对每个路由的过滤器(如地址重写.断路器.添加/删除请求头.限流和安全等). 2.新增 Spring Cl…
前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息.ZooKeeper的信息.数据库连接.Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆,一旦在部署的时候某个参数忘记修改了,那么就必须重新打包部署,这确实让人感到非常头疼.因此就想到使用Spring中的Profile来解决上面描述的问题,并且在此记录一下其使用的方式,如果有不对的地方,请指正!(感谢).本文从如下3方面探讨Spring的Profile: Spring中的Profi…
CSS3的选择器提供了很多像:nth-child这样有用的选择器,并且得到浏览器支持.CSS的第四代 选择器CSS4选择器),经我们带来了更多有用的选择器. 1.否定伪类:not 否定伪类选择器其实在CSS3选择器中就出现了,只不过CSS4选择器对否定伪类选择器升级了.在CSS3中,你可以通过否定伪类选择器不去选中你不需要用到的CSS样式的元素.比如说,你想除了.intro的段落之外文本都不加粗,你就可以这样使用伪类选择器. p:not(.intro) { font-weight: normal…
近日,在GraphQL Java诞生6周年的时候,Spring社区通过博客宣布正式创建全新项目:Spring GraphQL,同时还发布了这个新项目的里程碑1.0版本. 博客原文:https://spring.io/blog/2021/07/06/hello-spring-graphql 该项目的任务是将GraphQL Java集成入Spring生态,而这个项目的开发工作将由双方两个团队共同承担. 什么是 GraphQL? 纵使GraphQL在国外开始就被炒的火热,但到了国内就跟Hibernat…
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何使用 Java 语言高效.可靠.简洁地访问数据库一直是程序员们津津乐道的话题.新发布的 Java SE 6 也在这方面更上层楼,为编程人员提供了许多好用的新特性.其中最显著的,莫过于 Java SE 6 拥有了一个内嵌的 100% 用 Java 语言编写的数据库系统.并且,Java 6 开始支持 J…
最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式 数据库H2.这里面就有个问题了,如何用一套代码,提供对Mysql和H2两种方案的支持?博主收集了一些资料,也调试了很久,终于找到一套可行方案,记 录下来.代码贴的有点多,主要是为了以后方便自己查找. H2的使用 H2是一个嵌入式,纯Java实现的数据库,它各方面都要好于Java的sqlitejdbc.它可以使用内存模式,也可以使用磁盘模式.具体使用可以看攻略:…
分析SpringBoot的自动化配置原理的时候,可以观察下这些@Enable*注解的源码,可以发现所有的注解都有一个@Import注解.@Import注解是用来导入配置类的,这也就是说这些自动开启的实现其实是导入了一些自动配置的Bean. 如:freemarker的自动化配置类FreeMarkerAutoConfiguration,这个自动化配置类需要classloader中的一些类需要存在并且在其他的一些配置类之后进行加载. 但是还存在一些自动化配置类,它们需要在使用一些注解开关的情况下才会生…
关于延迟加载 在 Spring 中,默认情况下所有定的 bean 及其依赖项目都是在应用启动时创建容器上下文是被初始化的.测试代码如下: @Slf4j @Configuration public class DemoConfig { public DemoConfig() { log.warn(" > > > demoConfig 被初始化 > > >"); } } 启动应用日志: [ main] o.a.c.c.C.[Tomcat].[localh…
一.异步处理 1. 什么是异步处理 原来,在服务器没有结束响应之前,浏览器是看不到响应内容的!只有响应结束时,浏览器才能显示结果! 现在异步处理的作用:在服务器开始响应后,浏览器就可以看到响应内容,不用等待服务器响应结束!   2. 实现异步的步骤 * 得到AsyncContext,它异步上下文对象 AsyncContext ac = request.startAsync(request,response); * 给上下文一个Runnable对象,启动它!(给上下文一个任务,让它完成!) ac.…
Spring系列之注解配置 Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率 你本来要写一段很长的代码来构造一个Beam对象,但是如果使用注解的话只要使用一个注解符号即可 下面我们来讲讲一些经常使用的注解符号 @Component 使用类上用于实例化Bean @Controller 使用web层类上用于实例化Bean @Service 使用在Service层类上用于实例化service @Repository…
(一)  背景资料 GPU就是图形处理器,是Graphics Processing Unit的缩写.电脑显示器上显示的图像,在显示在显示器上之前.要经过一些列处理,这个过程有个专有的名词叫"渲染" ,曾经计算机上是没有GPU的,都是通过CPU来进行"渲染"处理的,这些涉及到"渲染"的计算工作很耗时.占用了CPU的大部分时间.之后出现了GPU,是专门为了实现"渲染"这样的计算工作的.用来将CPU解放出来,GPU是专为运行复杂的数…
Java8的两个重大改变,一个是Lambda表达式,另一个就是本节要讲的Stream API表达式.Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找.过滤.筛选等操作,在新版的JPA中,也已经加入了Stream.如: @Query("select u from User u") Stream<User> findAllByCustomQueryAndStream(); Stream<User> readAllByFirstnam…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复217或者20160330可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 还记得以前调试插件或者自定义工作流代码吗?如果是调试本机的代码还好,插件调试可以查考我这两篇博文:Dynamics CRM插件开发教程之:插件的调试 和 Dynamics 365 Customer Engagement中插件的调试 ,如果是调试非本机代码,需要使用远程调试,更麻烦.现在好多了…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 从Dynamics CRM 2015 UR1 开始,新增了乐观并发(Optimistic concurrency)处理.以前Dynamics CRM更新记录我称之为裸奔,它是不管你获取这条记录以后,别人是否做了更改,是直接Update这条记录,没有乐观并发一说.其实利用实体的RowVersi…
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位.auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除.前后两个标准的auto,完全是两个概念 1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推断,可以大大简化我们的编程工作.下面是一些使用auto的例子. #include <vector> #include <map> using namespace std; int m…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 从Dynamics CRM 2015 UR1 开始,新增了ExecuteTransactionRequest,主要是用来处理以前面临的窘境:执行多个消息,有些消息成功,有些消息失败,系统是让成功的成功,让失败的失败.当然从Dynamics CRM 2013起也不是无计可施,我的博文:Dyna…
这是一篇总结文章,主要收集 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 迁移指南 当然,你可…
Atitit j2ee5 jee5 j2ee6 j2ee7 jee6 jee7 新特性 Keyword Java ee5 ,Java ee6,Java ee7  j2ee5 jee5 j2ee6 j2ee7 jee6 jee7 新特性 j2ee1.5 j2ee1.6 j2ee1.7 新特性 Java ee6 . ,Servlet 3.0 2 2.1. 可插性  web片段 2 2.2. 异步处理 3 2.3. anno支持filter,sevlet,listen 3 2.4. 三.元数据和通用注…
有众多新特性和函数库的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等字节码操作函数库的重度使用,必须确保这些函数库能理解…
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…
作者|翟永超 Spring Boot 2.0 来啦,有哪些新特性?升级吗? 写在前面 北京时间 3 月 1 日,经过漫长的等待之后,Spring Boot 2.0 正式发布.作为 Spring 生态中的重要开源项目,Spring Boot 旨在简化创建产品级的 Spring 应用和服务.用户只需要"run"就能创建一个独立的,产品级别的 Spring 应用. 一经发布,Spring Boot 就迅速受到了开发者的亲睐,到目前为止,它已经有超过 2 万个 Star,1.6 万个 fork…