Java
文章平均质量分 76
林中轩
这个作者很懒,什么都没留下…
展开
-
高并发下如何保证接口的幂等性?
前言接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考。不知道你有没有遇到过这些场景: 有时我们在填写某些form表单时,保存按钮不小心快速点了两次,表中竟然产生了两条重复的数据,只是id不一样。 我们在项目中为了解决接口超时问题,通常会引入了重试机制。第一次请求接口超时了,请求方没能及时获取返回结果(此时有可能已经成功了),为了避免返回错误的结果(这种情况不可能直接返...转载 2021-04-09 14:37:43 · 289 阅读 · 1 评论 -
大厂也在用的 6种 数据脱敏方案,别做泄密内鬼
而作为开发者的我们,能做的就是尽量避免经我们手的用户数据泄露,那今天就来讲讲互联网中内部防止隐私数据泄露的手段-数据脱敏。什么是数据脱敏先来看看什么是数据脱敏?数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如手机号、银行卡号等信息,进行转换或者修改的一种技术手段,防止敏感数据直接在不可靠的环境下使用。像政府、医疗行业、金融机构、移动运营商是比较早开始应用数据脱敏的,因为他们所掌握的都是用户最核心的私密数据,如果泄露后果是不可估量的。数据脱敏的应用在生活中是比较..原创 2021-03-29 15:25:40 · 1546 阅读 · 0 评论 -
一口气说出 6种 @Transactional 注解失效场景
引言昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。@Transactional注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。一、事务事务管理在系统...原创 2021-03-29 11:23:10 · 153 阅读 · 0 评论 -
40 多套 Java 完整实战项目,各个精品!
电商秒杀天猫整站 J2EE天猫整站 SSM天猫整站 Springbootmall-learning:mall学习教程,架构、业务、技术要点全方位解析。SpringBoot 电商商城系统 Mall4jSpringBoot 完整电商系统 Mall:包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。newbee-mall:newbee-mall 项目(新蜂商城)是一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-adm...原创 2021-03-29 11:11:37 · 4083 阅读 · 0 评论 -
java Html2Image 实现html转图片功能
java Html2Image 实现html转图片功能//java Html2Image 实现html转图片功能 // html2image HtmlImageGenerator imageGenerator = new HtmlImageGenerator(); String htmlstr = "<img src='http://www.a翻译 2017-07-17 21:06:52 · 4797 阅读 · 0 评论 -
Guava学习记录
Guava学习记录基本工具(Basic Utilities)1.Objects.equal(),不用对它们进行null检查Objects.equal("a", "a"); // returns trueObjects.equal(null, "a"); // returns falseObjects.equal("a", null); // returns fa翻译 2017-07-26 23:09:54 · 972 阅读 · 0 评论 -
《Java并发编程实战》笔记
《Java并发编程实战》笔记线程安全性1.竞态条件:由于不恰当的执行时序而出现不正确的结果2.重入:当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然而,由于内置锁是可重入的,因此如果某个线程视图获得一个已经由它自己持有的锁,那么这个请求就会成功3.一种常见的加锁约定是,将所有的可变状态都封装在对象内部,并通过对象的内置锁对所有访问可变状态的代码路径翻译 2017-07-26 23:11:36 · 511 阅读 · 0 评论 -
post请求下载excel文档解决方法
post请求无法直接发送请求下载excel文档,是因为我们在后台改变了响应头的内容: Content-Type: application/vnd.ms-excel 导致post请求无法识别这种消息头,导致无法直接下载。解决方法: 改成使用form表单提交方式即可/*===================post请求下载文件 * options转载 2017-09-28 13:56:21 · 4150 阅读 · 0 评论 -
阿里巴巴Java开发规约插件使用
就在今天 10月14日上午9:00 阿里巴巴于在杭州云栖大会《研发效能峰会》上,正式发布《阿里巴巴Java开发手册》扫描插件,该插件在扫描代码后,将不符合《手册》的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能。--两个字牛逼翻译 2017-10-15 23:50:29 · 341 阅读 · 0 评论 -
2017年Android百大框架排行榜
2017年Android百大框架排行榜 框架:提供一定能力的小段程序 一.榜单介绍 排行榜包括四大类:单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架混合开发框架:提供开发hybrid app、h5与webview结合能力、web app能力的框架企业级开源项目:可以独立运行的app,有极高的学习价值、思路借鉴意义书籍类开源项转载 2017-06-21 10:21:25 · 907 阅读 · 0 评论 -
浅析Java中CountDownLatch用法
浅析Java中CountDownLatch用法/**CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程转载 2017-05-05 16:42:06 · 234 阅读 · 0 评论 -
java问题排查工具单
java问题排查工具单摘要: # 我的问题排查工具箱 ## 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话不多说,开搞。 ## Linux命令类 ###tail 最常用的tail -f转载 2017-02-17 17:54:50 · 727 阅读 · 0 评论 -
maven阿里云中央仓库
今天做新项目时,发现oschina的maven源关闭了,如下: http://www.oschina.net/news/75946/maven-oschina-closed然后在评论里发现ali也提供maven源了,如下 mirrors> mirror> id>alimavenid> name>aliyun mavenname> url>转载 2017-02-09 01:17:46 · 575 阅读 · 0 评论 -
35 个 Java 代码性能优化总结
35 个 Java 代码性能优化总结代码优化的目标是:1、减小代码的体积2、提高代码运行的效率代码优化细节1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是 final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰转载 2017-02-08 13:00:18 · 338 阅读 · 0 评论 -
搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)
搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)我以我做的一个例子来说明框架的搭建过程 ^V^!项目结构如图:action:存放Action类,也就是控制类dao:DAO数据库操作po:POJO类,也就是持久化类service:存放Service类dao类在Ser转载 2017-02-07 15:33:33 · 704 阅读 · 0 评论 -
将已有的Eclipse项目转化为Maven项目
将已有的Eclipse项目转化为Maven项目我们之前在Eclipse IDE完成的Java命令行项目、Java Web项目也使用了构建工具——Ant,它帮助我们编译、运行Java源代码(无需我们自己调用javac, java等命令来进行重复、繁琐的构建任务)。以Java项目为例,它的目录结构一般是这样的:.├── bin│ └── com│ └── tianmayi转载 2017-02-07 13:39:41 · 29991 阅读 · 1 评论 -
logback的使用和logback.xml详解
参考文章 http://www.cnblogs.com/warking/p/5710303.html一、logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本,同时它完整...转载 2018-06-13 17:12:42 · 191 阅读 · 0 评论 -
springmvc和mybatis面试题(含答案)
Spring MVC Framework有这样一些特点:1。它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件.并且和Spring提供的其他基础结构紧密集成.2。不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)3。可以任意使用各种视图技术,而不仅仅局限于JSP4。支持各种请求资源的映射策略5。它应是易于扩展的...转载 2018-06-15 17:33:47 · 1819 阅读 · 0 评论 -
Java (Date)如何存取MySQL datetime类型
1 在java中只有Date类型,这样数据存储到MySQL会出现问题,前台提交的数据,比如2018-03-20 17:30:59,后台用Date接受的时候,由于Date只精确到天,所以默认接收时间为2016-10-10 00:00:00,保存到mysql数据库之后,重新取出数据的时候又会发现,数据为2018-03-20 00:00:00.0,无缘无故在后面多了一个.0。 2 ...原创 2018-08-25 21:40:32 · 26361 阅读 · 0 评论 -
Java中对List集合的常用操作
Java中对List集合的常用操作目录:list中添加,获取,删除元素;list中是否包含某个元素;list中根据索引将元素数值改变(替换);list中查看(判断)元素的索引;根据元素索引位置进行的判断;利用list中索引位置重新生成一个新的list(截取集合);对比两个list中的所有元素;判断list是否为空;返回Iterator集合对象;将集合转换为字符串;将集合转换为数组;集合类型转换;去...原创 2018-07-13 16:31:25 · 4722 阅读 · 0 评论 -
分布式配置管理平台 - Disconf web管理端安装
1.环境配置配置java、maven环境,并安装mysql,reids,zookeeeper,Nginx2.下载disconf下载https://codeload.github.com/knightliao/disconf/zip/master解压:unzip disconf-master.zip3.编译打包创建目录mkdir /home/disconf/online-resourcesmkdir...转载 2018-07-04 22:31:13 · 210 阅读 · 0 评论 -
Java高并发解决方案
Java高并发解决方案对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步1、同步和异步的区别和联系同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值...原创 2018-06-28 23:23:22 · 611 阅读 · 0 评论 -
11 个简单的 Java 性能调优技巧
大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。好吧,不能说这是完全错误的。优化应用程序以获得最佳性能不是一件容易的事情。但是,这并不意味着如果你不具备这些知识,就不能做任何事情。这里有11个易于遵循的建议和最佳实践可以帮助你创建一个性能良好的应用程序。大部分建议是针对Java的。但也有若干建议是与语言无关的,可以应用于所有应用程序和编程语言。在讨论专门针对Java的性能调优技巧...原创 2018-06-28 23:20:24 · 175 阅读 · 0 评论 -
SpringBoot非官方教程 | 终章:文章汇总
springboot非官方教程,可能最接近于官方的一个教程,大多数案例都来自于官方文档,为了更好的理解,加入了个人的改造。码云下载:https://git.oschina.net/forezp/SpringBootLearning源码下载:https://github.com/forezp/SpringBootLearning,谢谢支持,记得star哦。欢迎关注:SpringCloud 系列教程入...翻译 2018-07-02 22:57:08 · 386 阅读 · 0 评论 -
史上最简单的 Spring Cloud 教程(2018)
史上最简单的 SpringCloud 教程 | 终章转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客 错过了这一篇,你可能再也学不会 Sprin...2017-04-12 23:14 841955Spring Cloud Sleuth进阶实战为什么需要Spring Cloud Sleuth?微服务架构是...转载 2018-07-02 22:18:03 · 1013 阅读 · 0 评论 -
天天低头写代码,可你知道什么是代码级性能优化吗?(上)
服务器配置:4核CPU 8G内存 共4台MQ:RabbitMQ数据库:DB2SOA框架:公司内部封装的Dubbo缓存框架:Redis,Memcached统一配置管理系统:公司内部开发的系统单台40TPS,加到4台服务器能到60TPS,扩展性几乎没有。在实际生产环境中,经常出现数据库死锁导致整个服务中断不可用。数据库事务乱用,导致事务占用时间太长。在实际生产环境中,服务器经常出现内存溢出和CPU时间...转载 2018-07-02 22:11:15 · 764 阅读 · 0 评论 -
常见性能优化策略的总结
之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视。很多技术人员拿到一个性能优化的需求以后,言必称缓存、异步、JVM等。实际上,第一步就应该是分析相关的代码,找出相应的瓶颈,再来考虑具体的优化策略。有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等。数据库的调优,总的来说分为以下三部分:1.2....原创 2018-07-02 22:06:26 · 458 阅读 · 0 评论 -
Jersey框架一:Jersey RESTful WebService框架简介
Jersey框架一:Jersey RESTful WebService框架简介Jersey系列文章:Jersey框架一:Jersey RESTful WebService框架简介Jersey框架二:Jersey对JSON的支持Jersey框架三:Jersey对HTTPS的支持 开发RESTful WebService意味着支持在多种媒体类型以及抽象底层的客户端-服务器通信细节,如果没有一个好的工具...转载 2018-07-02 22:00:21 · 393 阅读 · 0 评论 -
JAVA多线程实现异步调用
在JAVA平台,实现异步调用的角色有如下三个角色:调用者、 提货单 、真实数据,一个调用者在调用耗时操作,不能立即返回数据时,先返回一个提货单,.然后在过一断时间后凭提货单来获取真正的数据.去蛋糕店买蛋糕,不需要等蛋糕做出来(假设现做要很长时间),只需要领个提货单就可以了(去干别的事情),等到蛋糕做好了,再拿提货单取蛋糕就可以了。package com.somnus.async; /***...原创 2018-07-02 18:09:07 · 692 阅读 · 0 评论 -
spring+springmvc+mybatis详细运转流程
最近在整合spring+springmvc+mybatis,网上有很多直接整合好的例子,但是下载过来之后发现对于SSM具体的运转流程还是不太清楚,今天看到一篇关于springmvc的详细处理流程,觉得总结的还可以,不懂springmvc运行流程的童鞋,大家一起来学习学习~~mvc 处理流程:1. 首先浏览器发送一个 url请求,比如 http://www.xxx.com/hello.html2. ...转载 2018-06-15 17:39:13 · 956 阅读 · 0 评论 -
JAVA实现json和对象间的相互转换
一、新建一个项目,导入这两个jar包,下载见附件: jackson-core-asl-1.9.12.jar jackson-mapper-asl-1.9.12.jar 二、新建一个工具类 JsonMapper.java Java代码 package com.ebiz.logic.service.impl; import java.io.IOE转载 2016-11-02 16:58:51 · 695 阅读 · 0 评论 -
浅谈JaveWeb项目分层设计
在搭建JaveWeb项目架构中,我们一般会分层设计,便于后期的维护,开发人员可以分模块去开发,提高整体团队的开发效率。层次按职责分一般分四层:表现层(SpringMVC)、持久层(mybatis)、业务层(service)和域模型层(SDK)。每一个层都有各自的职责,应该隔离开来。表现层:我们可以选用技术SpringMVC,当然还可以选用Struts,该层主要根据用户的请求,响应跳转到不同的U转载 2016-11-01 18:54:53 · 852 阅读 · 0 评论 -
推荐10款最常用的Android开发工具
推荐10款最常用的Android开发工具翻译 2015-04-23 12:23:22 · 3941 阅读 · 0 评论 -
面试常问问题:银行网上支付项目中怎么控制多线程高并发访问?
银行网上支付项目中怎么控制多线程高并发访问?翻译 2015-04-02 10:55:52 · 17408 阅读 · 0 评论 -
SpringMVC常用基础知识
常用注解元素@Controller标注在Bean的类定义处@RequestMapping真正让Bean具备Spring MVC Controller功能的是@RequestMapping这个注解@RequestMapping可以标注在类定义处,将Controller和特定请求关联起来;还可以标注在方法签名处,以便进一步对请求进行分流配套的翻译 2014-06-16 23:21:02 · 950 阅读 · 0 评论 -
去除List列表中重复值(稍作调整,也适合于List<T> 和 List<?>)
方法一 循环元素删除 [c-sharp] view plaincopypublic static void removeDuplicate(List list) { for ( int i = 0 ; i for ( int j = list.size() - 1 ; j > i; j -- ) { if翻译 2014-06-14 18:49:34 · 2645 阅读 · 0 评论 -
eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)
eclipse中反向生成hibernate实体类+jpa注释翻译 2014-05-21 20:40:11 · 26648 阅读 · 2 评论 -
自己手动安装hibernate tools for eclipse(Hibernate反向工程)
自己手动安装hibernate tools for eclipse(Hibernate反向工程)用过myeclipse的人都知道,myeclipse有集成一个hibernate的可以根据数据库表自动生成mapping映射(xml或annotation)以及java的pojo类的工具。其实hibernate官方网站就有提供一个这样的工具,当然,现在的名字叫做jboss翻译 2014-05-21 20:42:03 · 18462 阅读 · 1 评论 -
中国最牛的“创业帮派”
中国最牛的“创业帮派”翻译 2014-04-27 00:06:01 · 2529 阅读 · 0 评论 -
Java实现定时任务的三种方法
Java实现定时任务的三种方法翻译 2014-04-26 23:44:25 · 1177 阅读 · 0 评论