Spring Retry 重试
重试的使用场景比较多,比如调用远程服务时,由于网络或者服务端响应慢导致调用超时,此时可以多重试几次。用定时任务也可以实现重试的效果,但比较麻烦,用Spring Retry的话一个注解搞定所有。话不多说,先看演示。 首先引入依赖 <dependency> <groupId>org.springfram ...
Java多线程(5):CAS
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 在JDK1.5之前,Java的多线程都是靠synchronized来保证同步的,这会引起很多性能问题,例如死锁。但随着Java的不断完善,JNI(Java Native Interface)使得Java能越过JVM直接调用本地方法,例如CAS。 ...
设计模式---模板方法模式
简述 提取算法中不变的部分封装成方法,变化的部分延迟到子类。 延迟到子类 这个说法在学习设计模式的时候经常出现,实际就是利用多态在子类中重写方法,使得实行时根据实例的类型调用不同的方法。 话不多说,看个案例。 优化案例 最初版v0 连接数据库我们有很多种方式,JDBC、JNDI、ODBC等等。下面是 ...
java中HashMap的设计精妙在哪?
摘要:本文结合图解和问题,教你一次性搞定HashMap 本文分享自华为云社区《java中HashMap的设计精妙在哪?用图解和几个问题教你一次性搞定HashMap》,作者:breakDawn。 HashMap核心原理 HashMap完整的put过程 以下是对上图的详细解释: 首先,要获取key的哈希 ...
JavaWeb之Servlet
Service 1. Service的概述 1.1 Service是什么 Servlet是Java提供的一门动态web资源开发技术 Servlet是JavaEE 规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet 1.2 Servi ...
Java 8 Time API
Java 8 系列文章 持续更新中 日期时间API 也是Java 8重要的更新之一,Java从一开始就缺少一致的日期和时间方法,Java 8 Date Time API是Java核心API的一个非常好的补充。 为什么需要新的日期时间API Java中现有的与日期和时间相关的类存在一些问题: 日期时间 ...
Java实现邮件发送
这里我们以QQ邮箱为例。 一、导入依赖: <dependencies> <!-- https://mvnrepository.com/artifact/javax.activation/activation --> <dependency> <groupId>javax.activation</gr ...
Scala-泛型
泛型 泛型定义 Scala的泛型和Java中的泛型表达的含义都是一样的,对处理的数据类型进行约束,但是Scala提供了更加强大的功能 scala中的泛型采用中括号 scala中的泛型是不可变的 泛型和类型不是一个层面的东西 所以scala中泛型和类型无法联合使用 泛型语法 如果能将类型和泛型当成一个 ...
爱上源码,重学Spring IoC深入
回答: 我们为什么要学习源码? 1、知其然知其所以然 2、站在巨人的肩膀上,提高自己的编码水平 3、应付面试 1.1 Spring源码阅读小技巧 1、类层次藏得太深,不要一个类一个类的去看,遇到方法该进就大胆的进 2、更不要一行一行的去看,看核心点,有些方法并不重要,不要跟它纠缠 3、看不懂的先不看 ...
Spring Boot 并行任务,这才是优雅的实现方式!
Spring Boot 的定时任务: 第一种:把参数配置到.properties文件中: 代码: package com.accord.task; import java.text.SimpleDateFormat; import java.util.Date; import org.springf ...
Scala-模式匹配
模式匹配 简介 类似于java中switch 当数据满足某一个分支时,执行完毕后,就直接跳出 case分支类似于default语言, 分支匹配其实就是顺序匹配 如果数据没有匹配任何规则,会发生错误 // val age = 20 // // age match { // //case _ => pr ...
Java 数据类型
数据类型 基本数据类型 整数类型 byte(占1字节): -128~127 short(占2字节) int(占4字节) long(占8字节): 定义该类型需要在后面加上 L(如:long var = 1234L;) 浮点类型 float(占4字节): 定义该类型需要在后面加上 F(如: float ...