自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 【Spring源码学习篇(二)】☀️从源码的角度梳理SpringBean的生命周期~✨

☀️从源码的角度梳理SpringBean的生命周期~✨前言Bean的生命周期Bean的生命周期简介这几个接口你了解吗?InstantiationAwareBeanPostProcessorBeanPostProcessorXXXXAware挽起袖子,撸源码前期准备工作InstantiationAwareBeanPostProcessor的执行时机postProcessBeforeInstantiationpostProcessAfterInstantiationXXXXAware接口的执行时机BeanNam

2021-08-31 16:17:45 13925

原创 【Spring源码学习篇(一)】☀️Spring5本地环境编译,超级实用!!✨

Spring5本地环境编译Spring编译环境的准备Spring环境编译拉取代码修改IDEA的Gradle配置修改maven下载地址Reload All Gradle Projects解决导入报错 org.springframework.cglib.core.*解决导入报错 jdk.jfr.*完成创建新的MoudleSpring编译环境的准备⭐️ JDK11⭐️ Gradle6.9,1⭐️ IDEA2020.3.4⭐️【Spring-Framework】5.3.10-SNAPSHOT✨ JDK/

2021-08-26 18:21:59 14305 5

原创 GitHub贪吃蛇的Commit如何生成

GitHub贪吃蛇动画制作~

2022-11-05 22:25:33 864 1

原创 整合AOP及带有SPEL表达式的自定义注解

整合注解切入AOP同时支持SPEL表达式

2022-10-31 11:11:43 474

原创 如何在多线程异步的情况下保证事务?

如何在多线程异步的情况下保证事务?

2022-08-25 22:30:00 4615 2

原创 集群方法同步执行框架 Suona

集群方法同步执行框架 Suona 🎺

2022-06-26 21:31:06 2982

原创 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

Compilation failure No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

2022-06-09 15:35:23 330

原创 如何解决Spring在同类方法相互调用中,事务,缓存等注解不生效的问题

☀️相信在日常开发中,一定经历过这样一个场景,就以下面这段代码抽象一下:@Servicepublic class ServiceA { public void methodA() { methodB(); methodC(); } @Transactional public void methodB() { // biz.. } @Cacheable public void method

2022-05-17 15:50:51 2566 1

原创 数据库文档工具ShowDB,Java开发者的数据库文档利器

数据库文档工具ShowDB,Java开发者的数据库文档利器,0配置,拆箱即用,自动将SpringBoot环境中存在的数据源进行文档,数据库监控话

2022-04-08 12:17:05 420

原创 【Nacos源码篇(十)】Client和ClientManager源码剖析

在这里,得取分两个概念,一个instance即一个实例,也就是一个Client,而ClientManager是所有实例的管理器文章目录先看看ClientManagerClientManager是一个接口EphemeralIpPortClientManager谈谈clients这个客户端的家过期的客户端清洁器 ExpiredClientCleanerDistroMapperClientClient接口IpPortBasedClient略微总结一下先看看ClientManagerClientManager

2022-03-02 21:03:05 1398

原创 【Bug解决】自动配置类@Bean后未生效

场景:本人写的钉钉机器人组件出现空指针的bug,但是本地调试没有问题,要通过SpringUtil的工具类获取到applicationtext,所以通过实现 ApplicationContextAware 来实现但是实际使用中,并未使用/** * @author cocowwy.cn * @create 2021-12-12-10:20 */@Configuration@EnableConfigurationProperties({RobotsHookProperties.class, R

2022-03-01 16:49:43 1670

原创 【Nacos源码篇(九)】Nacos的心跳源码剖析

本人看的源码版本是nacos2.0.3不同版本的逻辑大致一致文章目录客户端相关代码BeatReactor首先看看其构造器addBeatInfoBeatTask !!!!!!NamingHttpClientProxysendBeat服务端相关代码beathandleBeatClientBeatProcessorV2客户端相关代码还是从客户端注册的地方开始(注册的流程可以参考上一篇)com.alibaba.nacos.client.naming.remote.http.NamingHttpClient

2022-02-21 21:24:29 10845

原创 两个例子讲清Thread的setDaemon的作用

本篇会用两个例子讲清楚setDaemon的作用你只需要记住这几个点:⚡️ 当你新建一个线程的时候,daemon值默认为false⚡️ 当没有daemon值为false的线程存活的时候,JVM会退出,这个线程也会⚡️ daemon为false的时候,称之为用户线程,为true的时候,称之为守护线程例子1,守护线程的何时终止?作用?: public static void main(String[] args) throws InterruptedException { Thr

2022-02-18 23:43:57 1221

原创 【Nacos源码篇(八)】Nacos服务注册源码剖析

细化分为两个步骤,一个是客户端,一个是服务端文章目录客户端代码地址注册代码剖析服务端代码地址服务端代码剖析registerServiceManagerClientInstancePublishInfoNotifyCenter流程总结~客户端代码地址如果你拉了nacos的源码(本人是拿的2.0.3的版本)的话,客户端发起服务注册代码地址如下:com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy#registerServic

2022-02-18 21:21:23 672

原创 记录一下向maven中央仓库提交jar踩过的坑

⚡️ 坑1,中央仓库地址,建议改成如下,在你的pom.xml里面,我看官网好像建议使用s01前缀的域名,而且不带s01开头的我用账号密码还登不上去,所以建议这里直接指定提交的地址会比较好 <distributionManagement> <repository> <id>release</id> <name>xxxx</name> <url&

2022-02-15 23:12:06 2170

原创 【Nacos源码篇(七)】Nacos事件通知总结

如果你看了之前的源码分析的话,可以看看这篇总结:消息通知总结上图是一个事件从new出来到被执行的整套流程,结合之前几篇文章,再次梳理一遍整个流程:⚡️ 首先,比如一个服务注册事件,会经过NotifyCenter的静态方法publishEvent来发布一个事件⚡️ 然后会根据该事件的全限定类名,去NotifyCenter内部的publishMap中找到这个事件所对应的事件发布者⚡️ 这个时候调用事件发布者的 offer方法向阻塞队列 queue 中添加事件,来暂存消息⚡️ 同时呢,事件发布者也是

2022-02-08 21:18:27 831

原创 【Nacos源码篇(六)】Event源码分析

Event源码分析

2022-02-08 21:01:56 411

原创 【Nacos源码篇(五)】Subscriber源码分析

文章目录先贴下接口SubscriberSmartSubscribersubscribeTypeexecutorignoreExpireEventonEvent这是事件通知里处理事件的落脚点,也就是事件执行的落地先贴下接口Subscriberpublic abstract class Subscriber<T extends Event> { /** * 事件执行的落地 */ public abstract void onEvent(T event);

2022-01-28 20:53:40 1272

原创 【Nacos源码篇(四)】EventPublisher源码分析

文章目录先看看接口接着细化其源码先看看其具体有哪些属性吧init承上启下,从NotifyCenter的**publisher.publish(event)**开始,进入事件发布者的源码分析当然,以下均为个人的理解哈~!先看看接口public interface EventPublisher extends Closeable { /** * 初始化事件发布者/Initializes the event publisher. */ void init(Class&l

2022-01-27 23:03:20 1005

原创 【Nacos源码篇(三)】NotifyCenter源码剖析

文章目录先看看具体属性它的静态代码块接着看看他的核心方法shutdownpublishEventregisterToPublisherderegisterPublisher先上一些个人阅读的时候觉得的核心代码,至于NotifyCenter已经在上文当中简要阐述了一下。本人原文笔迹:戳这里本人源码注释:戳这里先看看具体属性 // Notify状态 private static final AtomicBoolean CLOSED = new AtomicBoolean(false);

2022-01-24 22:11:27 1395

原创 【Nacos源码篇(二)】Nacos的事件通知机制

文章目录源码阅读笔记Nacos的事件通知流程源码阅读笔记Nacos源码阅读笔记Nacos的事件通知流程

2022-01-23 17:23:35 4418 1

原创 如何在细粒度的控制事务回滚的代码块?

有这样一个场景,加入了 @Transactional 之后,如果在代码运行过程中,有一些异步任务,或者是RPC调用之类的情况,但是事务又进行了回归,那么就会发生脏读的情况,那么要怎么保证这一情况的发生呢?解决方案很简单: @Autowired private DataSourceTransactionManager dataSourceTransactionManager; TransactionStatus transactionStatus = dataSourceTransact

2022-01-04 18:30:18 908

原创 【Nacos源码篇(一)】Nacos源码本地环境搭建

Nacos源码本地环境搭建☀️Nacos源码下载地址☀️Nacos本地启动配置☀️Nacos源码下载地址Nacos源码地址☀️Nacos本地启动配置???? Step1在你的项目路径,即nacos目录下面编译一下代码执行如下命令:mvn compile⚡️ 这样就能解决 com.alibaba.nacos.consistency.entity 包飘红的问题了(当然执行完仍然飘红,其只是在编译后的文件生成了class,所以就算飘红,也是能够继续启动项目的)????Step2添加参数,设

2021-12-29 14:42:16 1034

原创 钉钉群聊机器人

cocowwy-dingtalk-robotcocowwy-dingtalk-start钉钉群聊机器人目前实现功能对同一个分组内的机器人,批量发送指定的消息在上述功能的基础上,实现根据手机号@指定人员在上述功能的情况下,实现消息延时发送,消息定时发送(coding…)使用方式,引入 cocowwy-dingtalk-start在业务层注入DingTalkApi配置文件: dingding: robots: - label: label1 sign

2021-12-16 15:26:03 691 1

原创 基于AOP和自定义注解实现的接口权限管理

⚡️ 在开发钉钉机器人的时候,由于想要做权限控制,但是又不想做复杂,只想做一个轻量级的区分,于是搭了一个轻量级的Demo⚡️ 实现思路:对用户的唯一标识进行权限等级的设置,并将请求等级放在线程的上下文当中,请求接口的时候,通过动态代理判断用户的接口权限⚡️部分代码已经隐藏了哈~SQLcreate table xxxx.t_robot_authority( id bigint auto_increment primary key, user_id v

2021-12-06 17:36:56 442

原创 Spring Data JDBC如何配置多数据源

????Spring Data JDBC 如何配置多数据源??⚡️作为一个Java开发者,如果经常关注Spring社区的话,会发现一个持久层框架,Spring Data JDBC,只需简单的配置数据源,一个注解,一个接口,就能够直接访问数据库,并且配合IDEA内置的插件,能够在反射阶段根据方法名自动的生成对应的SQL,对于一些轻量级的服务,能够很好的起到开箱即用的功能,那么对于这一套框架,如何配置多数据源呢?⚡️下面的Demo,博主用了两个数据源,分别为sexytea-pro-rd和sexytea-te

2021-09-17 17:26:38 1888 2

原创 springboot配置文件加载顺序

bootsrap.yml -> bootsrap-x.yml -> application.yml -> application-x.yml配置文件的加载顺序,即后面的配置的优先级较高,能够覆盖前者配置。

2021-08-01 14:38:54 131

原创 @Cacheable缓存失效的原因

使用spring的缓存,失效的原因总结如下:1.一个方法A调同一个类里的另一个有缓存注解的方法B,这样是不走缓存的。因为@Cacheable 是使用AOP 代理实现的 ,通过创建内部类来代理缓存方法,这样就会导致一个问题,类内部的方法调用类内部的缓存方法不会走代理,不会走代理,就不能正常创建缓存,所以每次都需要去调用数据库。2.使用了weakKeys()在Debug的时候查看注入的缓存管理器,发现缓存实际上已经注册进了缓存管理器的Map里面,但是当再次调用的时候,并没有命中缓存,查看缓存管理器的配置

2021-07-28 16:09:56 3929

原创 Caffeine如何配置多个缓存管理器?

配置类:@Configurationpublic class CacheConfig { public static final String A= "A"; public static final String B= "B"; @Bean(name = A) @Primary public CacheManager cacheManager() { CaffeineCacheManager branchCache = new Caffeine

2021-07-27 20:07:47 1387

原创 美团开放平台品牌商接口对接步骤(Java)

美团品牌商接口对接前言美团开发者账号申请开发的前期工作申请开通外卖业务控制台申请测试门店设置商品开发接收美团推送的请求detail字段如何外网调用本机接口呢?如何向美团发送请求?前言网上文档整的花里胡哨的,重点也没讲几个完善的,于是笔者踩完坑之后决定将整套对接流程记录下来~在申请美团开发者账号之前,一定要弄清楚需要申请的是品牌商,还是申请的服务商,品牌商的话是本公司自己的研发人员对接,而服务商的话是使用的第三方的人员来进行,这个一定要弄清,想当初笔者看服务商的文档看了一两天结果发现看错文档了┭┮﹏┭┮

2021-05-27 18:56:59 30141 17

原创 谈谈我是如何使用AOP和自定义注解的方式来做日志处理的?

笔者的日志想带上执行的方法的中文名(自定义),于是决定使用AOP的方式来对自己的日志进行特殊的处理。1.首先先附上自定义的注解:import java.lang.annotation.*;/** * 自定义方法名注解 * 便于日志处理的时候获取方法名 * * @author Cocowwy * @create 2021-05-05-11:29 */@Target(ElementType.METHOD)@Documented@Retention(RetentionPolicy.RUN

2021-05-27 14:36:12 119

原创 如何使用内网穿透,将自己的内网接口暴露到外网

1.下载钉钉的内网穿透工具git clone https://github.com/open-dingtalk/pierced.git2.进入pierced\windows_64 的界面下,如果是其他的操作系统,则进入到对应的操作系统下在此目录下执行cmd执行命令ding.exe -config=ding.cfg -subdomain=xxxxx 8080如此就可以通过上图的外网地址进行内网穿透了,xxxxx就是我们访问地址的前缀,最后的外网的访问地址为:xxxxx.vaiwan.com。

2021-05-09 21:30:48 16193

原创 【已解决】DataX报错:ERROR StdoutPluginCollector - 脏数据: {“exception“:“Could not retrieve transation read-on

使用阿里的DataX工具进行数据迁移的时候,入库的时候报错,纠结了一天终于找到了原因 ERROR StdoutPluginCollector - 脏数据:{"exception":"Could not retrieve transation read-only status server","record":[{"byteSize":3,"index":0,"rawDat原因:MySQL版本与DataX指定的mysql的连接驱动的版本对应不上你可以通过select version()命令查看

2021-04-26 10:06:21 4763

原创 阿里开源工具之DataX的使用

本人在导数据的时候发生了很多问题,比如千百万的数据量的表导了N久都没导完,要么就是导完了有一部分失败,又或者是表明对不上号,字段对不上,然后导出来的sql文件过大导致想打开文件修改一下sql文件的表明数据库名都打不开,很是难受,在别人的推荐下发现了这款工具,真的速度很快(没开车哦~)接下来附上DataX的使用方式:首先附上官方文档的位置:Github地址注意环境 需要JDK1.8,mavaen Python 一定要使用2.6的 不要3+的 一定要配置好环境变量接着配置我们的 json 文件,

2021-04-25 14:48:31 290 1

原创 【已解决】Arthas启动报错 java.io.IOException: 拒绝访问。

今天通过官网下载下来Arthascurl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-boot.jar但是启动起来却报错,说是访问被拒绝了,找了半天都说要改什么C/D盘的权限,千万不要!!解决方式:在当前目录打开cmd的权限为非管理员身份,所以只需要以管理员的身份打开即可然后拼接一下你自己的Arthas的jar包的路径即可!(右键文件属性,将地址拼接过来即可)顺便附上arthas的地址:Arthas官网希望能

2021-04-21 20:23:55 2910 1

原创 【已解决】MyBatis-Plus整合多数据源启动报错dynamic-datasource Please check the setting of primary

多数据源的配置可参考官网:MyBatis-Plus多数据源配置依赖: <!-- mybatis-plus依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4

2021-04-14 15:00:47 28456

原创 IDEA创建项目报错Initialization failed for ‘https://start.spring.io‘ 怎么解决?

使用idea创建springboot项目报错解决方案:改成阿里云的镜像即可: https://start.aliyun.com/有一说一阿里的可选项还挺多

2021-04-14 11:32:54 298

原创 解决从GitHub上下源码慢的问题

比如我从github上下载nacos的源码,真的慢到掉渣:解决方法:将地址复制,然后打开码云新建一个仓库,将他从github上导过来然后再将该仓库的地址拷贝下来,这样,网速就能飞快了!

2021-01-31 12:19:25 139

原创 easyExcel使用springboot来写入Excel进行下载操作

就拿一个生成简单的日报的表格来演示:首先,我们先引入我们的依赖: <!--easyExcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version>

2021-01-28 17:12:38 402

原创 微信小程序获取地理位置

首先先下载SDK:下载之后将下载的文件放在utils文件夹下:接着进入该网站申请key:key申请记住要勾选微信小程序和webServiceApi然后附上小程序代码:// 引入const QQMapWX = require('../../utils/qqmap-wx-jssdk.js')// 调用 //获取经纬度 并且根据经纬度获取 getLocation: function(e) { var that = this wx.getLoca

2021-01-27 13:37:41 220

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除