![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术文章精译
文章平均质量分 88
叩丁狼
用心做教育,专注每一位学员的成长
展开
-
JavaScript-DOM操作
本文为叩丁狼高级讲师原创文章,转载请注明出处。在之前的文章中,学习过了DOM的访问方式,其中也把DOM相关的概念进行了学习,其实DOM的内容还有很多,所以本文将会继续学习DOM操作相关的内容,DOM操作涉及到的操作有:增、删、改、查,而查这方面的内容其实就是上一次所写的“访问方式”。##DOM的增加DOM操作中增指的是增加节点,分为两部分:创建节点和插入节点。###创建节点创建节...原创 2019-12-17 17:01:34 · 508 阅读 · 1 评论 -
在Jetty中快速搭建SSL
本文翻译:吴嘉俊,叩丁狼高级讲师。 你是否遇到过需要快速搭建SSL环境的需求,但是感觉比较迷糊?我敢肯定,你不是一个人,我也遇到过这个麻烦,下面我简单分享一下我的解决方案。下面我会分享如何在Jetty中开启SSL。注意:下面的指令只是作为在开发环境中搭建SSL,如果是在生产环境,需要注意更多的安全因素,这个话题就不在本文中阐述了。 首先安装好Jetty服务; 为了方便...原创 2018-10-30 11:22:48 · 581 阅读 · 0 评论 -
Spring中实现HTTP缓存
本文翻译:吴嘉俊,叩丁狼高级讲师缓存是HTTP协议中一个非常重要的特征。但是由于某些原因,在HTTP协议中,缓存常常只用来做图片,CSS样式表或者JS等静态文件缓存。其实,HTTP缓存不仅仅可以用来做静态资源的缓存,同样对动态的请求也同样有用。仅仅只需要一些简单的工作,你就可以提高应用的响应速度,提高用户体验。在这篇文章中,你将会学到如何在Spring中使用内置的HTTP响应缓存机制来缓存...原创 2018-11-06 09:19:38 · 925 阅读 · 0 评论 -
同时实现Springboot的Jar/War部署
本文翻译:吴嘉俊,叩丁狼高级讲师 Springboot带来的最大的好处在于不需要依赖外部容器。需要做的就是开发完成之后,直接将应用打包成一个可执行的jar文件。只需要简单的几个步骤,不需要额外安装和配置另外的软件,一个新的应用就可以快速部署起来。但是,有时候你仍然希望你的应用能使用常规的WAR文件的方式部署。比如,你必须提交war文件来完成公司的持续集成,或者必须在公司定制的某个特殊的容器...原创 2018-11-06 09:23:00 · 1529 阅读 · 0 评论 -
Spring中自定义数据校验器
本文翻译:吴嘉俊,叩丁狼高级讲师 通常情况下,Spring提供的内置的校验已经足够应付绝大多数需求,但是,迟早我们可能会遇到JSR303或者Hibernate Validator不能处理的情况。在这篇文章中,我将会介绍如果在SpringBoot应用中创建自定义的校验注解。本文中介绍的内容,对于Springboot1.x和Springboot2.x均适用。创建需求我们来构思一个需求,我...原创 2018-11-08 16:06:47 · 2455 阅读 · 0 评论 -
升级到JUnit5的7个理由
翻译:叩丁狼教育吴嘉俊“不进,则退”——约翰·沃尔夫冈·冯·歌德最新版本的JUnit在2017年的第三季度已经发布了final release版本。大量的里程碑改进加入了新版本中。我希望你能够尽快的使用起来,这篇文章的主题,我列出了7个点,鼓励大家立刻开始去玩玩JUnit5.立刻可用当一门语言、一款应用服务器或代码库的新版本出现的时候,大部分开发人员往往会等到业界真正开始推行这个产...原创 2018-11-14 14:24:18 · 8870 阅读 · 0 评论 -
深入Java内存泄漏问题
翻译:吴嘉俊,叩丁狼高级讲师。经验不足的开发人员经常会认为Java的自动垃圾回收机制会让他们彻底的摆脱内存管理的困扰。这是一个常见的错觉,即使垃圾收集器尽了最大的努力,即使是最好的程序员,也可能成为内存泄漏的牺牲品。容我慢慢道来。内存泄漏出现在当对象已经不需要了,但是对象仍然被异常的引用。这种泄漏会带来严重后果,随意举一例,你的应用会持续的要求更多的资源,而导致对你的服务器造成不必要的压力...原创 2018-11-12 17:49:48 · 6518 阅读 · 1 评论 -
Java开发微服务入门:微服务认知
翻译:叩丁狼教育吴嘉俊 1. 介绍微服务,当今业界最热门的话题之一,bulingbuling的,每个人,每个公司都想做,但有多少是真正从公司的人和组织结构角度去思考微服务会带来的变革。这篇文章中,我们会从核心的原理,到准备实际操作的这个流程来讨论微服务架构。但是,这是一个每天都发生着大量创新的领域,所以,在这篇文章中将要讨论的所有内容,都是现在发生的实践,这些实践,是否在未来还有用,我...原创 2018-11-22 11:10:38 · 1677 阅读 · 1 评论 -
从面向对象角度看javascript的闭包
翻译:梁开权###javascript的"闭包"是这样定义的:闭包就是能够读取其他函数内部变量的函数。在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。###从面向对象的角度来理解"闭包"在面向对象中,我们是这样定义类:public class User { private String name;原创 2019-01-04 11:56:35 · 171 阅读 · 0 评论 -
Java 8 时间日期库使用示例(一)
本文翻译:梁开权###Java 8是如何处理时间及日期的有人问学习一个新库的最佳途径是什么?其实就是就是在实际项目中那样去使用它。在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库。简言之,只有任务本身才会真正促使你去探索及学习。java 8的新的日期及时间API也是一样。为了学习Java 8的这个新库,这里我创建了几个以任务为导向的例子。我们先从一个简单的任务...原创 2019-02-16 09:28:02 · 422 阅读 · 0 评论 -
Java 8 时间日期库使用示例(二)
本文翻译:梁开权在上一个章节中我们使用Java8提供的时间日期库,能更加便捷和灵活的操作时间日期,本章节我们将接着之前的内容继续跟大家分享Java8的时间日期库###如何增加时间里面的小时数很多时候我们需要增加小时,分或者秒来计算出将来的时间。Java 8不仅提供了不可变且线程安全的类,它还提供了一些更方便的方法譬如plusHours()来替换原来的add()方法。顺便说一下,这些方法...原创 2019-02-16 09:29:18 · 508 阅读 · 0 评论 -
使用Springboot+Feign Clients快速搭建REST客户端应用
本文翻译:吴嘉俊,叩丁狼高级讲师。 在本文中,我们会快速的使用Springboot,配合Feign搭建一个简单的REST客户端应用。通过本示例,让大家对这两个框架的配合有一个基本的了解。Spring Boot 是一个Java的快速开发框架,用于简化web和企业级应用开发。Spring boot内置tomcat服务器,提供了大量的starter配置,实现多种组件的自动装配。Feign...原创 2018-10-31 18:28:45 · 738 阅读 · 0 评论 -
Java应用中的数据校验
翻译:吴嘉俊 ,叩丁狼高级讲师。 [译者注:这篇文章是开源项目CUBA Platform的作者,在这篇文章中,作者阐述了CUBA平台中关于数据校验的设计思想和使用方式,可以作为大家在设计数据校验方面一个比较好的参考。]我接触到的很多项目中,对数据校验这方面内容都没有一个很明确的策略。这些团队常常面对即将临近的交付期压力,不明确的项目续期,所以根本没有太多时间来规划和实现项目中的校验策略...原创 2018-10-23 18:11:28 · 5599 阅读 · 0 评论 -
Buggy Java Code:Java程序员最容易犯的10个错(第一部分)
翻译:叩丁狼教育吴嘉俊Java语言最开始是为了交互电视机而开发的,随着时间的推移,他已经广泛应用各种软件开发领域。基于面向对象的设计,屏蔽了诸如C,C++等语言的一些复杂性,提供了垃圾回收机制,平台无关的虚拟机技术,Java创造了一种前所未有的开发方式。另一方面,得益于Java提出的“一次编码,到处运行”的口号,让Java更加出名。但是Java中的异常也是处处发生,下面我就列出了我认为的Jav...原创 2018-10-17 16:03:42 · 348 阅读 · 0 评论 -
在SpringBoot2中开发特征切换功能
翻译:吴嘉俊,叩丁狼高级讲师。 众所周知,软件开发是一个协同的活动。开发中的整合工作往往都被视为邪恶的,开发人员会像魔鬼一样对待这个过程。为了应付这种情况,有非常多的方法和规则被开发出来。特征切换就是其中之一。在本文中,你将会看到什么是特征切换,了解特征标记,以及如何在你的Springboot应用中使用。什么是特征切换简单来说,特征切换是控制程序按照某种流程执行的一个变量开关。不用修改...原创 2018-10-15 09:31:38 · 405 阅读 · 0 评论 -
使用LocalDate, LocalTime 和 LocalDateTime
翻译:吴嘉俊,叩丁狼高级讲师。 Java8提供了一系列的关于日期和时间API的更新,在JDK中引入了基于JSR310:Date and Time API规范的Joda Time API。新的API提供了大量关于日期和时间的优秀的功能。在本文中,我会介绍最常用的三个类:java.time.LocalDate,java.time.LocalTime和java.time.LocalDateTim...原创 2018-10-12 15:51:35 · 1404 阅读 · 0 评论 -
第一个基于Apache Ignite的应用
翻译:吴嘉俊,叩丁狼高级讲师。在本文中,我们会通过创建第一个Ignite应用,用于从分布式的缓存中存放/获取值,来进一步了解Ignite的使用。在第一个例子中,我们尽可能的用最简单的代码来展示如何在Java应用中操作Apache Ignite集群的数据。本文的应用可以从GitHub中clone(https://github.com/srecon/the-apache-ignite-book...原创 2018-10-11 10:41:22 · 2943 阅读 · 0 评论 -
使用LocalDate, LocalTime 和 LocalDateTime
翻译:吴嘉俊,叩丁狼高级讲师Java8提供了一系列的关于日期和时间API的更新,在JDK中引入了基于JSR310:Date and Time API规范的Joda Time API。新的API提供了大量关于日期和时间的优秀的功能。在本文中,我会介绍最常用的三个类:java.time.LocalDate,java.time.LocalTime和java.time.LocalDateTime。...原创 2018-10-15 09:50:34 · 845 阅读 · 0 评论 -
在JDK11中运行单文件代码
翻译:叩丁狼教育吴嘉俊 JEP330-启动单文件代码程序(Launch Single-File Source-Code Programs)是即将更新的JDK11(18.9)版本中一个很不错的功能。这个功能允许你直接使用java解析器运行java代码。java文件会在内存中执行编译并且直接执行。唯一的约束在于所有相关的类必须定义在东一个java文件中。这个特征非常适合刚刚准备学习java的童...原创 2018-10-15 14:16:34 · 1081 阅读 · 0 评论 -
别让Java对象逃逸(Object Escape)
翻译:吴嘉俊,叩丁狼高级讲师 关于逃逸分析我在开源项目Speedment的开发过程中,我和项目的贡献者都意识到我们的代码不仅要良好并易懂,同时还要有较高的性能,否则他们很容易转向使用其他的解决方案。逃逸分析(Escape Analysis)允许我们在写出性能较好的代码的同时,能通过恰当的抽象,保证良好的代码风格。逃逸分析(简写为“EA”)允许java编译器在多种情况下优化我们...原创 2018-10-15 14:21:43 · 3201 阅读 · 1 评论 -
Buggy Java Code:Java程序员最容易犯的10个错(2)
本文翻译:吴嘉俊,叩丁狼高级讲师。 Java语言最开始是为了交互电视机而开发的,随着时间的推移,他已经广泛应用各种软件开发领域。基于面向对象的设计,屏蔽了诸如C,C++等语言的一些复杂性,提供了垃圾回收机制,平台无关的虚拟机技术,Java创造了一种前所未有的开发方式。另一方面,得益于Java提出的“一次编码,到处运行”的口号,让Java更加出名。但是Java中的异常也是处处发生,下面我就列出了...原创 2018-10-18 13:20:11 · 265 阅读 · 0 评论 -
Java8的JVM对于逃逸对象的再捕获
翻译:吴嘉俊,叩丁狼高级讲师。 背景在上一篇文章中,我们介绍了逃逸分析,并且介绍了通过EA,JVM可以直接在栈上为未逃逸对象分配空间,而不需要在堆上分配空间。在文章发布之后,Caleb Cushing问了一个很有趣的问题:如果一个逃逸对象被限定在调用者的范围之内,那么这个逃逸对象是否可以被EA优化?我在这篇文章中给出了问题的答案。一个例子我们先创建一个如下的简单类:Pe...原创 2018-10-16 11:29:00 · 484 阅读 · 0 评论 -
JUnit5中@ParameterizedTest 处理 @CvsSource中的空值
翻译:叩丁狼教育吴嘉俊 在JUnit4中测试方法参数是非常麻烦的事情(注:针对同一个方法,测试多组不同的参数值)。JUnit5中引入了大量的新的特性,让使用同一个测试方法,测试不同的参数变得非常容易。但是,这里面有一个问题值得讨论,就是测试空值的问题。在这篇文章中,我们会讨论在JUnit5中,如何通过@CvsSource和@ValueSource为@ParameterizedTest测试传...原创 2018-10-19 10:47:20 · 2464 阅读 · 1 评论 -
Java 10 : 局部变量类型推断
翻译:吴嘉俊 ,叩丁狼高级讲师。在所有Java10中出现的JEP规范中,最有趣,并获得了最多讨论的,非JEP286-局部变量类型推断(Local-Variable Type Inference)。什么是局部变量类型推断在Java7中的菱形操作符允许我们这样写代码:List<String> data=new ArrayList<>();在Java8中,...原创 2018-10-22 10:52:28 · 462 阅读 · 1 评论 -
使用Permutations引爆你的JUnit5测试
翻译:吴嘉俊,叩丁狼高级讲师。写JUnit测试是一个非常枯燥无聊的事情。本文介绍使用permutations配合TestFactory方法和DynamicTest对象,让你的测试事半功倍。在本文中,我将使用Speedment【注:Speedment是一款ORM工具,使用Lambda表达式来简化SQL的书写】,因为它已经包含了一个完善的Permutation类供我们立刻使用。Speedmen...原创 2018-10-15 09:29:50 · 249 阅读 · 0 评论