![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 76
@猪大肠
阿里云社区专家博主、多年金融行业开发经验,专注于java核心技术、Spring框架研究,学习成功分享
展开
-
动态代理:Cglib原理讲解
Cglib动态代理不需要被代理类实现接口,根据原理我们知道生成的代理类是继承了被代理类,而且其方法调用方法是使用FastClass,这与JDK动态代理的反射有比较大的区别。JDK代理使用的是反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGLIB代理使用字节码处理框架ASM,对代理对象类的class文件加载进来,通过修改字节码生成子类。JDK创建代理对象效率较高,执行效率较低;CGLIB创建代理对象效率较低,执行效率高。原创 2022-12-11 21:11:41 · 1166 阅读 · 0 评论 -
动态代理:JDK动态代理源码学习
动态代理在开发可能使用的频率不是特别高,但在一些框架里面总能看到它的身影,例如Spring AOP就是使用JDK动态代理和CGLIB动态代理两种方法,本篇文章讲解JDK动态代理原理,看它是如何对类进行增强的。代理就是由直接调用转为间接调用,比如我们调用出单服务A,我需要在每次调用A时都记录日志,我们可以创建一个新的类及其方法B,在B中调用A,并且插入日志,这样由原先的调用A变成B,我们可以在B做一些增强操作如日志等。B就是代理类,而A就是原生类(被代理类)。原创 2022-12-09 23:55:25 · 933 阅读 · 0 评论 -
Java NIO实战篇:使用Socket实现报文交互
最近有个对接渠道需求,对方提供文档中要求使用Socket短链接的方式进行报文交互,所以这边采用NIO方式编写Socket。原创 2022-11-13 07:00:00 · 2122 阅读 · 0 评论 -
Spring IOC源码:obtainFreshBeanFactory 详解(下)
本篇文章介绍了自定义命名空间的解析过程,并且编写的自定义命名空间案例加深理解。原创 2022-11-12 12:16:48 · 686 阅读 · 0 评论 -
Spring IOC源码:obtainFreshBeanFactory 详解(中)
这篇我们重点介绍obtainFreshBeanFactory中的默认命名空间对配置文件的处理过程。原创 2022-11-08 23:12:57 · 251 阅读 · 0 评论 -
Idea中常用的Git操作
Git在我们工作中使用得非常广泛,记得刚入职拿会公司使用的还是SVN,后面也切换到Git。对比一下SVN跟Git两者各自都有好处吧,个人觉得Git操作起来比SVN复杂,但是在开发中确实方便一点。下面总结一下工作中常用的操作;原创 2022-11-02 22:55:29 · 5269 阅读 · 0 评论 -
Spring源码下载与编译,Debug学习才有效率
学习spring的时候,肯定要自己学会看源码,才能更好的学习框架的设计思想,要有效率的学习,借助Debug效率才更高。在学习的前提就是要下载一下源码,编译过程中真的遇到很多坑啊,折腾很多时间,版本问题,jar下载问题等,下面给大家分享一下我的步骤;............原创 2022-07-04 23:28:09 · 912 阅读 · 0 评论 -
Java如何避免使用double类型时展示科学计数
昨天业务找过来说页面上的金额不对,查了日志才知道渠道送过来的数据,由于金额比较大自动转成科学计数了,金额是18882138.23,结果转成1.888213823E7了。问了那边才知道他们使用的是double类型;整数位超过7位时,就会自动转成科学计数;...原创 2022-06-19 20:37:20 · 561 阅读 · 0 评论 -
IDEA2021安装教程
新进公司第一件事就是搭建各种环境,有时候找的安装包质量很不高,导致在这块浪费了很多时间,真的是寻找几小时,安装两分钟;下面将我的安装过程分享给大家,包含下载地址!原创 2022-06-15 20:44:40 · 5205 阅读 · 3 评论 -
Java8 新特性踩坑篇,java.util.NoSuchElementException: No value present
今天测试老师在测试功能的时候,发现功能提交时居然报No value present错误了。而且还是在其它周边系统上,刚开始以为不是我们系统应该跟我们没关系,直到对方开发老师找过来查日志后,才发现是我写的代码有问题,哭了,还好是测试阶段;原因是我使用了Optional调用Get方法前没有先进行isPresent()判断是否为空,所以导致整个功能报废了;...原创 2022-06-14 22:44:09 · 5002 阅读 · 0 评论 -
面试乐观锁悲观锁如何回答?
面试几回问几回,这更说明这项技术点的重要性,项目开发中很多业务场景都会用到,尤为经典的就是商城体系中的秒杀,设计做得不好就会超卖;原创 2022-06-13 22:04:42 · 125 阅读 · 0 评论 -
Springboot实现微信公众号模板消息发送
最近看了一个地推的公众号,每天都会给你推送好几条地推需要的模板消息,好一段时间没有做公众号开发了,最近刚申请了个服务号,刚好可以拿来开发。模板消息需要服务号才可以,申请服务号的话需要企业营业执照,个人的话是没有办法申请的。下面来分享一下我的开发过程。开发步骤1.微信公众号服务号2.准备好 APPID 跟AppSecret3.开通模板消息,申请一个模板,获取模板ID4.获取ACCESS_TOKEN5.获取关注公众号的用户列表6.选择需要发送的用户,并推送消息一、资料申请1.1、获取 APP原创 2022-03-20 20:42:35 · 6570 阅读 · 10 评论 -
java上传文件到sftp服务器
java上传文件到sftp服务器,看我这篇就懂啦!!!!!!原创 2022-03-15 23:18:58 · 10267 阅读 · 11 评论 -
Java代理设计模式
Java代理设计模式是非常常用的设计模式,像spring中就使用了很多的代理模式使用代理我们可以对一个类进行增强或者缩减功能;代理可以分为静态代理和动态代理静态代理:代理对象在编译期,就已经被编译成class,在运行之前就已经存在了动态代理:代理对象是在运行期间通过反射生成的一、静态代理静态代理使用起来比较简单,但是由于它是写死的,所以很不灵活,耦合度比较高1.1、我们需要创建一个接口模板public interface Animal { public void call();}原创 2020-09-24 23:38:10 · 120 阅读 · 0 评论 -
Java LinkedBlockingQueue实现消息队列
最近有个项目需要开发一个预约系统,系统涉及到发送短信验证码;一般用户点击发送验证码,发送请求到后端后,调用短信接口,成功后就返回响应的状态码给用户;但是这样的过程,有时候会因为短信接口响应慢,而导致前端响应慢;所以这里需要做一个简单的优化,当用户点击发送短信时,将我们的短信调用放入一个队列中,放入之后,即给前端响应;后面通过阻塞队列,取出队列内容,进行短信发送即可,这样可以更好的提升系统的性能和用户体验度;一、创建短信生产者public class MessageProducer implements原创 2020-09-16 00:41:05 · 1442 阅读 · 0 评论 -
Springboot整合shiro:实现用户登录和权限验证
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。当然类型大家也可以使用spring security;因为我平时开发的项目都是中小型的,所以使用shiro对于业务来说已经够用了,那么下面是我整理的整合记录;一、什么是Shiro这里大家需要先认识一下它的三个重要的组件;1.1、Subject即当前的操作用户,就是当前登录的用户;1.2、SecurityManager该组件是用来管理所有的操作用户的安全操作1.3、Realm该组件需要我们自定义,主原创 2020-08-25 16:13:39 · 6663 阅读 · 1 评论 -
java如何利用JWT和注解,自定义参数的方式优雅实现小程序用户Id管理
在我们的开发项目中,经常需要用到用户ID,比如在小程序商城系统中,我们将商品加入购物车,这时前端就需要发送请求,携带上用户的ID。基本上很多种请求操作都需要携带用户ID,如果每个请求都需要我们往data中添加id的话,那样需要写很多重复代码,并且代码也不美观;所以我们可以利用JWT跟注解的方式来实现;一、编写token管理器1.1、导入jwt包在maven中加入该依赖 <dependency> <groupId>com.auth0<原创 2020-08-22 19:07:21 · 1978 阅读 · 0 评论 -
微信小程序+Springboot实现订阅消息推送
在我们开发微信小程序中经常会用到订阅消息提醒,如商城系统中,用户购买商品支付之后,可以发送提醒订单支付成功;在我们的拼团功能中,当拼团成功或失败时,可以推送订阅消息提醒用户;一、订阅消息分为长期订阅和一次性订阅;长期订阅消息:就是在用户授权之后,可以推送多次消息给用户;一次性订阅消息:就是用户授权后只能推送一次消息给用户,如果还需要推送消息的话,就必须让用户再授权一次了;两者比较起来的话肯定长期订阅消息用起来比较舒服的;但是它不是所有开发者都可以申请,一般是需要有一定的资质才行,如媒体类;具体的话.原创 2020-08-20 21:03:27 · 13819 阅读 · 3 评论 -
SSM搭建:Springboot整合mybatis
SSM框架现在开发届中非常的流行,而且使用起来也非常简单,使用springboot更是让我们开发效率提高无数倍;好了,下面写一下自己整合的过程;一、创建springboot项目1.1、使用IDEA创建项目1.2、引入IDEA官方给我们提供好的包1.3、引入阿里巴巴druid数据源maven内容如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0原创 2020-08-14 13:35:45 · 308 阅读 · 0 评论