
java技术分享
文章平均质量分 67
LuckyWangxs
挺秃然的
展开
-
Java线程池详解(执行原理、拒绝策略、Executors三种线程池对比)
线程池,顾名思义,存放线程的池子,线程池的创建与管理是需要消耗一定的资源的,现在假设一个场景,在你的程序中,存在一些高并发的任务,而且任务执行时间往往都不长,那你就需要频繁的创建与销毁线程,这样对服务器资源来说是极大的浪费,如果采用线程池,将线程提前创建好,用的时候直接拿,不用的时候放回去,则会节省很多资源。当然线程池不仅仅能维护好线程,并且能根据不同的场景定制化不同的线程池,线程数量也有弹性,还能维护需要执行的任务,下面我们来详细探讨。原创 2023-04-13 18:48:39 · 1629 阅读 · 6 评论 -
DCL 单例模式是否需要volatile?
DCL单例模式是否需要volatile修饰原创 2023-02-17 14:28:02 · 1132 阅读 · 10 评论 -
wait原理的讨论
synchronized关键字的wait方法的原理;ReentrantLock的wait底层原理;waiting与blocking状态剖析;EntryList与WaitSet剖析转载 2022-08-19 11:36:21 · 767 阅读 · 0 评论 -
ScheduledExecutorService详解
有线程池的特性,也可以实现任务循环执行,可以看作是一个简单地定时任务组件,因为有线程池特性,所以任务之间可以多线程并发执行,互不影响,当任务来的时候,才会真正创建线程去执行我们在做一些普通定时循环任务时可以用它,比如定时刷新字典常量,只需要不断重复执行即可,这篇文章讲解一下它的用法以及注意事项,不涉及底层原理。...原创 2022-08-15 16:45:52 · 40777 阅读 · 12 评论 -
SpringBoot集成Shardingjdbc+seata AT模式
SpringBoot集成shardingjdbc+seata-AT,分布式事务案例原创 2022-08-12 18:00:39 · 5167 阅读 · 8 评论 -
Java获取当前时间的上一年、下一年、上个月、下个月、前一天等(时间格式化)
类,而且具有相同的规律,会一个,就都会了,下面是获取当前时间下一年的前一天的示例,一般用于生成年账单,比如年账单时间是2022-08-11到2023-08-10。类拿到我们需要的任意类型的时间,也可以用它获取单个的年、月、日,类,我们可以先用上面代码获取到所需要的时间,然后再用。那最开始我们要获取的当前时间的下一年的前一天,再用。中获取昨天、明天、去年,上一个小时等等都需要用到。例如我们要获取当前时间的天,则可以直接调用上述。,其余均一致,获取年月日时分秒则传。中,要对时间类型格式化都会用到。...原创 2022-08-11 14:27:04 · 17484 阅读 · 0 评论 -
SpringBoot默认开启AOP,采用Cglib代理方式?(Spring AOP快速入门)
Spring AOP快速入门,为何SpringBoot不需要手动开启AOP功能?原创 2022-07-20 18:43:02 · 5271 阅读 · 0 评论 -
SpringBoot+Alipay支付宝支付对接教程(沙箱环境)
Alipay一、学习文档二、环境准备1、调试2、依赖三、开发一、学习文档1、APIhttps://opendocs.alipay.com/apis2、沙箱环境https://opendocs.alipay.com/apis二、环境准备1、调试(1)获取appid点击上述沙箱环境网址,登陆进入,以下为appid(2)设置RSA2密钥1、依然是沙箱环境,如下,点击 设置2、选择 公钥 ,此处的公钥支付宝提供了专门的生产工具,很方便生成密钥有两种方式,我选择的是生成器生成。以下原创 2021-04-12 16:54:35 · 6636 阅读 · 7 评论 -
解决Java发送带附件的邮件,文件变为tcmime.*.bin以及乱码问题(SpringBoot)
一、原因1. 文件变为tcmime.*.bin 在Java邮件发送中,默认情况下,附件名称过长会自动截断且变为tcmime.*.bin,无法打开查看。2. 乱码 编码格式问题二、解决方案1. 解决文件变为tcmime.*.bin  原创 2021-03-23 11:20:29 · 3740 阅读 · 11 评论 -
ApplicationContextAware接口的使用
ApplicationContextAware接口一、ApplicationContextAware的作用1、ApplicationContext是什么?2、ApplicationContextAware作用二、ApplicationContextAware如何使用三、知识点拓展一、ApplicationContextAware的作用1、ApplicationContext是什么? 很多人都知道,Applic原创 2020-11-17 18:30:15 · 8496 阅读 · 17 评论 -
Java实现批量下载(打包成zip)
批量下载引言一、前端JS发送下载请求1、ajax无法发送下载请求2、js发送下载请求:超链接方式3、js发送下载请求:拼接Form表单,并提交二、后台处理三、结束引言 批量下载思路,首先前端发送下载请求,携带必要参数,也可无参默认批量下载页面全部数据;后台接收后进行数据处理拿到要下载文件的下载地址,循环下载地址,用压缩流,将文件直接写入压缩包,最后利用文件下载将压缩包输出给前端。一、前端JS发送下载请求1、原创 2020-11-10 16:57:41 · 14212 阅读 · 59 评论 -
js前端传json,后台接收‘‘被转为";问题解决
js前端传json,后台接收''被转为& quot;一、产生原因二、解决方案1、方案一2、方案二三、结束一、产生原因 前端传json格式数据,后台接收却发现有一堆& quot;,但是如果后台接收参数用@RequestBody注解,则不会出现这个问题,出现这一问题的原因就是后台没有按照json格式去接收参数,按照json接收参数的前提是请求头 参数Content-Type:application/原创 2020-11-10 16:25:18 · 9781 阅读 · 10 评论 -
SpringBoot+阿里云短信服务实现发送短信验证码功能
本篇文章为记录自己学习发送短信验证码小功能的过程,所有的调用三方接口的功能都如出一辙,在学习一个调用三方接口的过程中总结经验,再学习其他的,思路就会很清晰,就像我刚学完发送邮件(上一篇博客有总结),现在学发短信,很清楚自己该干什么。一、登陆阿里云,开通短信服务,并获取AccessKeyId和AccessKeySecret AccessKeyId,用阿里云官网的话说,是访问阿里云API的密钥,一个用户可以有多个,每次向阿里云服务发送请求,需要带着AccessKeyId,阿...原创 2020-10-27 14:42:08 · 4074 阅读 · 0 评论 -
SpringBoot发送邮件(QQ邮箱、腾讯企业邮箱、网易邮箱、阿里云邮箱...)
本篇文章以QQ邮箱作为发件人写案例演示了不带附件发邮件、带附件发邮件,无论是QQ邮箱还是网易邮箱,操作都一样,只是配置文件配置邮箱服务器与用户和授权码不同的问题。一、获取邮箱授权码 使用SpringBoot发送邮箱,首先需要有邮箱的授权码,用QQ邮箱,那就获取QQ邮箱的授权码,网易邮箱,就获取网易邮箱授权码,打开QQ邮箱的设置,点击账户,找到一下信息: 点击开启,按照弹出框操作,随后要把给出的邮箱授权码复制出来 !!!如果想要将发送历史保留在邮箱...原创 2020-10-26 17:17:24 · 9070 阅读 · 3 评论 -
Redis之RedisTemplate在实际开发中的使用
本篇文章介绍的是RedisTemplate在实际开发中如何使用,从SpringBoot自动装配RedisTemplate出发,介绍如何定义自己的RedisTemplate,到RedisTemplate的封装,老司机不必再浪费时间,O(∩_∩)O一、SpringBoot中集成RedisTemplate 我的上一篇博客清楚明了介绍了在SpringBoot中如何集成Redis,其中遇到了一些问题,都有记录,可以看下:https://blog.youkuaiyun.com/qq_41563...原创 2020-10-23 10:58:52 · 6803 阅读 · 1 评论 -
如何在SpringBoot中集成Redis(RedisTemplate)
1、导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>如图:2、在application.yml中配置Redisspring: redis: hos...原创 2020-10-21 16:18:40 · 4958 阅读 · 5 评论 -
漫谈单点登录(SSO)
我认为作者写的很好,所以记录到自己博客,以下为一字不差的复制,原文地址:https://www.cnblogs.com/EzrealLiu/p/5559255.html漫谈单点登录(SSO)1. 摘要( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!)SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的SSO等等……这些优秀的解.转载 2020-10-24 21:41:38 · 1342 阅读 · 0 评论 -
Spring知识点总结(ProcessOn思维导图浏览克隆)
这是一份自己学习过程中总结的Spring知识点思维导图,在ProcessOn上可免费克隆,我看有不少人浏览克隆,所以拿出来给大家分享,文件地址https://processon.com/view/5d9bfe1ee4b08fc441fe1032#map原创 2020-10-20 11:09:43 · 1353 阅读 · 0 评论 -
mybatis-generator配置文件详解(生成bean、mapping与dao)
1、pom文件中导入依赖首先需要引入mysql依赖与mybatis依赖,本篇教程用的是SpringBoot项目,如果非SprinigBoot项目,导入原始的mybatis依赖即可。<!--mysql依赖与mybatis依赖--><dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId&原创 2020-10-19 14:38:18 · 1787 阅读 · 0 评论 -
日志之注解@Slf4j的使用
如果不知道@Slf4j的小伙伴,在使用日志的时候正常情况会写这么一行代码:private final Logger logger = LoggerFactory.getLogger(当前类.class);其实@Slf4j只是为了省略这行代码,IDEA当前普遍使用,拿他举例。一、IDEA安装Lombok插件用于支持@Slf4j安装完以后可以看下二、使用1. @Slf4j是lombok.extern.slf4j包下的,所以先导入依赖<depende...原创 2020-10-10 17:33:47 · 2374 阅读 · 0 评论 -
Idea之Maven工程SpringBoot项目热部署配置
首先,热部署,只是为了避免开发阶段修改代码导致的频繁重启,生产环境,热部署必须关闭,望周知,接下来进入正题一、pom文件配置首先需要先在需要热部署项目的pom文件中引入依赖,如下:<!-- 热部署依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId&g原创 2020-09-23 16:36:21 · 1405 阅读 · 0 评论 -
SpringBoot之日志框架的介绍与简单使用
1.SpringBoot中的日志框架简单原理 SpringBoot之所以可以自动适配各种日志框架,是因为它的内部逻辑依赖了不同的jar包,其依赖关系,你们也可以自己在idea中查看依赖关系树,这里我提供一个简单的图示: 通过上图可发现SpringBoot的日志抽象层是slf4j,其日志具体实现是通过各个日志框架;另外,我们可以看到SpringBoot通过log4j-to-slf4j.jar来适配log4j日志框架,通过jul-to-slf4j来适配jul日志框架,所以...原创 2020-09-23 13:27:23 · 1475 阅读 · 1 评论