自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

uzong

好好学习,天天向上

  • 博客(353)
  • 资源 (5)
  • 收藏
  • 关注

原创 谈无数从0到1项目的技术感想之开篇

经典起推敲,并能够在一定的生命周期内屹立不倒。

2024-06-24 23:18:56 1064

原创 Java 开发者用 python 来践行面向对象编程

子类使用不同的大模型,比如通义千问、chatgpt等。提供 invoke(prompt) 方法,实现模型调用。(为了大模型职责单一,暂且提供 一个方法, prompt是 template_prompt 和 参数拼接后的值)。5.测评基类:BaseEvaluation(

2024-06-22 02:30:38 1009

原创 第十二节 SpringBoot Starter 系列结束语

对于刚参加工作的同学,训练写一个 Starter,也将是提升技术能力的有效方式。3.16 晚上,终于将 mybatis-spring-boot-starter 的案例写出来,并正确运行了,但是已经凌晨了。3.31 整个系列快完工了,大概十来章,但是还比较粗糙,还需要一个较长的时间来润色优化。3.14 当我想写一个 Starter 案例的时候,发现无从下笔,感觉是一个阻碍,写作并不是那么容易。4.5 一整体,整理自动装配的源码流程,是一个繁琐的过程,也是比较难得部分,到凌晨12点,休息了。

2024-05-24 21:37:26 890

原创 第十一节 SpringBoot Starter 面试题

虽然学了这么多,流程也十分清楚,但是能够将自己知道的表达出来,还需自己总结,然后内化成自己的,不然还是会在面试的时候出现卡壳。这样就得不偿失了。希望通过本教程,能够深入理解 SpringBoot Starter 的原理,能够总结回答好这个问题。最终拿下 offer。已同步发布到公众号:面汤放盐第十一节 SpringBoot Starter 面试题 - 掘金 (juejin.cn)

2024-05-24 21:33:28 764

原创 第十节 SpringBoot Starter 实战之 redis 滑动窗口

选择一个合理的业务场景。比如我选择了 滑动窗口这个场景。创建新的Maven项目,并引入依赖,通常命名需要遵循Spring Boot的命名规范,通常是-spring-boot-starter代码实现,以及其他类的引入编写自动配置类。编写文件,在src/main/resources/META-INF/spring.factories中注册自定义的自动配置类打包并发布到仓库,并在其他项目测试。

2024-05-24 21:29:34 1189

原创 第九节 设计 Starter 不能忽视的细节

我们要定义一个生产可用的 Starter ,还有几个细节,我们必须要关注。这些细节可以很好的帮助我们写出更优秀的 Starter。

2024-05-24 21:25:57 1260

原创 第八节 条件装配案例讲解

相对地,@ConditionalOnMissingClass(value = "redis.clients.jedis.Jedis") 注解在 InMemoryCacheConfig 类上,表明如果类路径不包含 Redis 的 Jedis 客户端类,则创建和注册 InMemoryCacheService 为 CacheService 的实现。在这个条件装配的例子中,Spring Boot 应用会自动检查 Redis 客户端库是否存在,并基于检查结果来决定使用哪个缓存实现。

2024-05-24 20:43:10 945

原创 第七节 ConfigurationClassParser 源码分析

tips: ConfigurationClassParser 是 Springframework 中的重要类。本章主要是源码理解,有难度和深度,也枯燥乏味,可以根据实际情况选择阅读。位置:org.springframework.context.annotation.ConfigurationClassParserConfigurationClassParser 它是解密 configuration 的关键。理解 ConfigurationClassParser 对理解整个 Spring 框架至关重要。

2024-05-24 20:27:50 1070

原创 第六节 自动装配源码理解

自动装配是 Spring 框架用来减少配置的显式需求而引入的一个特性,该特性通过@Autowired或者@Resource注解实现依赖对象的自动注入。而 Spring Boot 在此基础上进一步发展,提出了更高级的自动配置(Auto-configuration)概念。

2024-05-24 00:44:47 1337

原创 第五节 Starter 的加载全貌

tips:下载源码,再结合本章内容,学习整个加载过程。上一章,我们理解了 spring.factories 的触发时机,但放在 SpringBoot 的整个加载过程来讲,只能算部分。而这一章,将从 SpringBoot 的加载全貌,进一步理解 Starter 的加载时机。

2024-05-24 00:32:20 472

原创 第四节 Starter 加载时机和源码理解

接下来,我们通过 debug 的方式来探索 Starter 被加载的过程。

2024-05-23 23:32:27 777

原创 第三节 mybatis-spring-boot-starter 案例分析

tips:可以利用 docker-desktop 快速搭建 MySQL、Redis 等中间件上一章,我们完成了一个自定义 Starter;这一章,我们来看看 Mybatis 是如何使用 Starter,通过学习进一步学习 Starter。

2024-05-23 23:19:46 1376 1

原创 第二节 快速自定义一个 Starter

创建一个新的 Maven 项目作为 Starter 项目,主要是一些业务实现类创建一个或多个配置类,使用 @Configuration 注解创建 spring.factories 文件,位置:src/main/resources/META-INF/spring.factories ,在文件中添加对自动配置类的引用使用 @ConfigurationProperties 注解创建一个属性类,以支持从 application.properties 或 application.yml 文件中读取配置。

2024-05-22 23:49:02 723

原创 第一节 为什么会是 SpringBoot Starter

集成第三方服务:例如,为某个云服务商提供的消息队列服务创建一个 Starter,当应用需要接入该服务时,只需要引入这个 Starter 即可完成相关的客户端依赖、认证信息以及连接配置等步骤。组织内部框架整合:如果公司内部有一些共用的基础组件或中间件,比如统一的日志框架、监控系统、权限管理模块等,可以将其封装成自定义 Starter,方便各项目快速复用和部署。

2024-05-22 23:08:49 998

原创 研究一款 Java 线程编排并行框架-asyncTool

如果有复杂场景,可以参考这个框架,但一定要熟知这个框架的特性,比如超时快速失败等场景是否接受;我要执行 TaskC,则先执行 TaskA 和 TaskB,然后才能执行 TaskC,最后再执行 TaskD。“解决任意的多线程并行、串行、阻塞、依赖、回调的并行框架,可以任意组合各线程的执行顺序,带全链路执行结果回调。因此,不管从 TaskC 作为入口,还是 TaskD 作为入口,它的执行结果都是一致的。最后,如果有后续的任务依赖于当前任务的完成,WorkerWrapper 将触发下一个任务的执行。

2024-03-24 14:32:13 1956

原创 我用 Navicat 的这些技能少加了好多班,也为公司挣了不少w

保持对数据的敬畏之心,任何的数据变更都要慎重。数据变更做好 review上面功能,建议先自行练习和测试,熟悉后再到生成环境使用纸上得来终觉浅,绝知此事要躬行!

2024-03-01 01:06:39 1153

原创 基于 redis 的简易滑动窗口实现

借助 redis 的 zset 有序集合能力,其中 score 字段要求有序,因此使用时间戳做 score,这样既保证顺序也能根据时间窗口计算窗口内的个数,通过计算时间窗口内的个数再与业务做判断;概要:本文封装 redis 的API,实现简易滑动窗口,分别从业务背景、窗口理解、redis 的 zset 结构,lua 脚本,注意事项、不足等进行讲解。3.统计当前窗口的个数;Lua脚本会占用较多的计算和内存资源,且无法被多线程加速,过于复杂或不合理的Lua脚本可能导致资源被占满的情况。只统计个数,不做其他的。

2024-02-27 00:24:00 1638

原创 元数据思想-打破传统的思维方式

编程的核心不是技巧,而是思维!与其天天写一些没啥技术含量的东西,不如尝试变通一下!与其坐而论道 不如起而行之!最后再来回味一下这个图,希望有更多的想法和灵感!

2024-02-25 18:19:54 903

原创 IDEA 重装我都会默默的下载这些好用的插件

面汤放盐。

2024-02-24 12:59:52 1428 1

原创 《大数据分析-数据仓库项目实战》--阅读笔记

大数据时代,需要考虑数据的采集、存储、计算处理等方式。数据仓库建模方式:确定业务过程、声明粒度、确定维度、确定事实采集:Flume、kafka、Sqoop存储:MySQL、Hadoop、HBase计算:Hive、Tez查询:Presto、Druid、Kylin可视化:Superset任务单调动:Azkaban元数据管理:Atlas脚本:Shell粗略的对整个大数据的部分技术做了一个简单的了解。

2022-11-20 12:57:58 1739 1

原创 使用Lambda重构面向对象的设计模式笔记

使用Lambda重构面向对象的设计模式是用Lambda进行重构,主要针对以下五种常见的设计模式: 策略模式 、 模板方法 、观察者模式 、责任链模式 、工厂模式一、策略模式策略模式代表了解决一类算法的通用解决方案,你可以在运行时选择使用哪种方案;验证输入的内容是否根据标准进行了恰当的格式化(比如只包含小写字母或 数字)。你可以从定义一个验证文本(以String的形式表示)的接口入。public class StrategyMain { public static void main(S

2020-11-01 00:03:06 690

原创 Spring中xml自定义标签的实现流程

Spring中xml自定义标签的实现流程背景:虽然xml方式在现在看来有一些落后了,但毕竟是注解的一种过渡。而解析器不管是注解还是xml都是一致的。例如:dubbo大量的自定义标签,包括spring中也存在大量的标签(低版本xml方式),那么自定义标签在Spirng中是如何实现的,今天就来理一下流程。一、实现步骤先知编写一个XSD: 定义需要使用到的标签编写一个解析标签的BeanDefinitionParse: 解析这些标签,将会做什么操作编写一个Handler,将自定义的BeanDefi

2020-06-13 17:34:07 1833

原创 java集合中的SetFromMap

java集合中的SetFromMap在阅读Spring源码的时候看见了这句代码:private final Set<String> alreadyCreated = Collections.newSetFromMap(new ConcurrentHashMap<>(256));于是点击查看整个代码的实现:public class Collections {...

2020-04-06 23:35:03 1047

原创 计算机网路基础概要

计算机网路基础一. 因特网概述1.1 互联网和因特网因特网是世界上最大的互联网。区别internet与Internet1.2 因特网发展的三个阶段从单个网络发展到三级结构的网络再到多层次的ISP结构的因特网1.3 ISP 因特网服务提供者因特网上的主机必须要有IP地址才可以进行通信。我国主要的ISP如下:在因特网发展规模逐渐壮大的过程中,为了实现更快的转发分组,因特网...

2020-02-07 16:56:50 893

原创 PostgreSQL函数(存储过程)返回多条记录的实现方式

29/100保存草稿发布文章 博文管理我的博客退出 Trash Temp 集线器,交换机,路由器之间有什么区别 集线器,交换机,路由器之间有什么区别 集线器,交换机,路由器之间有什么区别 集线器,交换机,路由器之间有什么区别 计算机网路基础 计算机网路基础 计算机网...

2020-02-07 16:31:42 7247

原创 集线器,交换机,路由器之间有什么区别

集线器(hub),交换机和路由器之间有什么区别“Hubs and Switches are used to create networks. Routers are used to connect networks.”集线器和交换机是用于构建网络的,而路由器是用于连接不同网络的(现在的路由器也拥有构建网络的功能)。一 瞅一下都是什么集线器(hub):交换机:路由器:二 区别和...

2020-01-31 17:29:23 3168

原创 Java中String类的equals方法

Java中String中的equals方法实现 public boolean equals(Object anObject) { //是否相等 if (this == anObject) { return true; } //是否String类型 if (anObject instanceof String) { ...

2020-01-12 21:38:02 704

原创 PostgreSQL完成按月累加

PostgreSQL完成按月累加背景统计某个指标,指标按照月进行累加,注意需要按省份和年份进行分组。方法一、使用自关联-- with 按月统计得到中间结果WITH yms AS (SELECT regionid,SUM(getnum) AS getnum,SUM(dealnum) AS dealnum,to_char(qndate,'yyyy-MM') AS yearmonthFRO...

2020-01-07 14:27:40 4755 3

原创 PostgreSQL给查询列表增加序号

PostgreSQL给查询列表增加序号利用 ROW_NUMBER() over( ) 给查询序列增加排序字段SELECT ROW_NUMBER() over(ORDER bY biztypename DESC ) AS num,biztypename FROM (SELECT DISTINCT biztypename FROM bizmaptype) t;效果如下:...

2020-01-02 16:25:18 12159

原创 PostgreSQL修改字段类型(表中存在数据)

PostgreSQL修改字段类型(表中存在数据)将表t_appraisescore 字段appraisedate 从varchar 修改成datealter table t_appraisescore alter column appraisedate type date using appraisedate::date;...

2019-12-28 21:13:47 7453 2

原创 PostgreSQL之raise(打印文本)

PostgreSQL之raise一、raise打印文本raise notice 'bgtimestamp is % ,bgdate is %, bgyearmonth is %',bgtimestamp,bgdate,bgyearmonth;

2019-12-23 21:14:36 1481

原创 shell+crontab制作postgresql数据库定期备份脚本

使用shell脚本+crontab制作定期脚本备份业务背景在开发期间,定期对数据库备份是非常有必要的,下面制作了粗来的脚步。第一步:编写shell脚本#! /bin/sh#获取一个时间戳 ymdhm=`date +%Y%m%d%H%M`echo $timestamp $ymdhm#创建文件夹mkdir -p /home/pgdatabackups/$ymdhm#路径ba...

2019-12-22 18:33:21 609

原创 使用bat 编写postgresql自动备份脚步

使用bat 编写postgresql自动备份脚步背景需求每天需要手动备份一个数据库到本地,每次都需要切换的postgresql/bin 下面,创建文件夹,然后输入一串的备份命令,再输入密码;每天都要这么做感觉麻烦,所以编写了一个bat脚步bat脚步如下:postgresql_backup.bat,set current_path=%~dp0 ::获取日期时分set directo...

2019-12-22 18:09:32 1335

原创 centos7搭建nexus3

centos7搭建nexus3在centos7上搭建nexus3 私服下载地址:http://download.sonatype.com/nexus/3/nexus-3.7.1-02-unix.tar.gz(官网下载是真滴慢,我用迅雷下载了一晚上。放在百度云上,方便下载)链接:https://pan.baidu.com/s/1nR3ZgOEJzfi72rg9PgaPmQ 提取码:dpfm...

2019-11-27 23:54:31 312

原创 centos7安装docker

centos7安装docker环境准备:虚拟机centos7,安装docker,以root用户进行操作步骤如下第一步:安装依赖安装需要的软件包yum install -y yum-utils device-mapper-persistent-data lvm2第二步:添加仓库yum-config-manager --add-repo https://download.docke...

2019-11-25 20:02:08 460

原创 PostgreSQL 使用其他表作为模板创建新表

使用其他表作为模板创建新表创建表tbl_big 并利用该表为模板,快速创建表 ( like tbl_big including all )[root@uzong ~]# su postgresbash-4.2$ psql technologycould not change directory to "/root"psql (9.2.24, server 10.8)WARNING: p...

2019-08-05 20:47:01 1133

原创 PostgreSQL更新JSON中的某个字段

PostgreSQL更新JSON中的某个字段背景需求现在需要通过SQL的方式,批量对JSON里面的某个字段统一处理,更新成一个新值。方法一 、使用jsonb_set函数补充:读取JSON中的值。select ‘{“a”:“foo”,“b”:1}’::json->‘a’; – 获得键’a’的值select ‘{“a”:“foo”,“b”:1}’::json->>‘a’...

2019-07-17 09:24:45 13708 1

原创 记录springBoot整合jersey实现文件上传的一些坑

问题一: 缺少包jersey-media-multipart 且没有保持版本一致Servlet.init() for servlet [com.storageservice.config.JerseyConfig] threw exceptionjava.lang.NoClassDefFoundError: org/glassfish/jersey/server/internal/injec...

2019-07-15 21:07:45 1550

原创 PostgreSQL简单的数据库备份

pg的一些简单的运维知识centos7 、PostgreSQL10一、粗略的数据库备份脚本粗略的备份某个数据,例如:在每天23点备份这个 technology 数据库。第一步:编写shell脚本 : backup.sh#! /bin/shda=`date +%Y%m%d%H%M%S`echo $dapg_dump mydb > /var/lib/pgsql/10/...

2019-07-03 20:05:47 492

原创 navicat 工具使用(一些技巧)--工具用得好,下班下得早

navicat 工具使用(一些技巧)–工具用得好,下班下得早一、快捷键快捷键作用其他ctrl + shif + r执行选中行与ctrl + r不同,会执行所有ctrl+/注释当前行ctrl+shift+/解除注释F6打开命令行窗口执行一些特定命令的时候ctrl+n打开一个新窗口ctrl+w关闭一个窗口跟常用快捷键一致...

2019-07-03 19:07:01 3659

postgresql_backups.sh

shell+crontab制作postgresql数据库定期备份脚本;利用pg_dump这个postgresql自带的备份工具

2019-12-22

postgresql_backup.bat

如果在windows上安装了postgresql,可以通过点击bat文件运行,一键备份数据库,可以跳过创建文件夹、输入密码等过程。

2019-12-22

pg_dump和pg_restore案例应用相关命令.sql

pg_dump和pg_restore案例,其中简单罗列了一些应用过程中可能用到的sql语句。

2019-08-05

深入理解Java虚拟机JVM高级特性与最佳实践(第2版)含源码 + Java虚拟机规范(Java SE 7)

深入理解Java虚拟机JVM高级特性与最佳实践(第2版)含源码 + Java虚拟机规范(Java SE 7)

2018-06-04

《疯狂Java讲义》第三版注解处理器代码(下载需要配合博客,不建议直接下载)

个人博客使用的代码(不建议下载);博客地址:https://blog.csdn.net/qq_31156277/article/details/

2018-05-18

空空如也

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

TA关注的人

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