自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小灰灰blog的专栏

我是小灰灰,码农界新人一个

  • 博客(318)
  • 资源 (6)
  • 收藏
  • 关注

原创 SpringBoot系列之数据库版本管理Liquibase集成

前面几篇介绍了项目启动之后进行数据库初始化的几种方式,接下来我们看一下如何使用Liquibase来实现数据库版本管理moreSpringBoot内置了对Liquibase的支持,在项目中使用非常简单。

2023-03-24 16:19:25 403 1

原创 SpringBoot系列之数据库初始化-datasource配置方式

如何实现在项目启动之后执行相应的sql,实现数据库表的初始化?本文将作为初始化方式的第一篇:基于SpringBoot的配置方式实现的数据初始化

2022-12-28 17:32:10 2281 2

原创 SpringBoot系列之数据库初始化-jpa配置方式

上一篇博文介绍如何使用来实现项目启动之后的数据库初始化,本文作为数据库初始化的第二篇,将主要介绍一下,如何使用spring.jpa的配置方式来实现相同的效果

2022-12-28 17:29:17 811

原创 SpringBoot系列教程之XML传参返回实战

最近在准备使用微信公众号来做个人站点的登录,发现微信的回调协议居然是xml格式的,之前使用json传输的较多,结果发现换成xml之后,好像并没有想象中的那么顺利,比如回传的数据始终拿不到,返回的数据对方不认等接下来我们来实际看一下,一个传参和返回都是xml的SpringBoot应用,究竟是怎样的

2022-12-27 13:59:09 3149

原创 SpringBoot系列教程之定义接口返回类型的几种方式

实现一个 web 接口返回 json 数据,基本上是每一个 javaer 非常熟悉的事情了;那么问题来了,如果我有一个接口,除了希望返回 json 格式的数据之外,若也希望可以返回 xml 格式数据可行么?

2022-12-27 13:55:31 1525

原创 【SpringBoot 实战】数据报表统计并定时推送用户的手把手教程

知识点:基于 MySql 的每日新增用户报表统计(如何统计每日新增用户,若日期不连续如何自动补 0?)定时执行报表统计任务MyBatis + MySql 数据操作邮件发送Thymeleaf 引擎实现报表模板渲染

2022-08-23 18:56:53 542

原创 一款简单好用的开源简繁转换类库

今天给大家介绍一个非常有意思类库,基于java实现的简繁体转换,适用于后端、android等开发领域

2022-08-11 20:03:15 799

原创 万字详解:MySql,Redis,Mq,ES的高可用方案解析

本片文章主要是分析当下不同应用场景下的几个主流系统的高可用策略,来看一下如何来保障的系统的高可用常见的高可用思路冗余(如数据副本、主备服务等)拆分(数据拆分、服务能力拆分等)持久化redis持久化RDB数据落盘加载方式+AOF记录操作命令用于回放策略主从,主从从全量数据冗余、读写请求分离,负载均衡的思想;核心问题在于主节点挂掉之后需要人工参与手动指定主库哨兵机制PING/PONG的探活机制,监听主节点,宕机之后自动选主,确保高可用;mysql通过冗余来实现高可用如主备。...

2022-08-02 09:49:58 1683

原创 万字总结:分布式系统的38个知识点

万字总结分布式系统的38个知识点,带你了解什么是分布式,分布式会遇到什么问题,有哪些理论支撑,有哪些经典的应对方案,业界是如何设计并保证分布式系统的高可用呢

2022-07-28 21:56:56 368

原创 ElasticSearch基本使用姿势二

本文作为elasticsearch 基本使用姿势第二篇,包含以下内容- 查询指定字段- 限制返回条数- 分页查询- 分组查询- 高亮- 自动补全提示- 排序- 返回结果聚合,如统计文档数,某个field value的求和、平均值等...

2022-06-14 19:21:06 300 1

原创 实战小技巧19:List转Map List的几种姿势

今天介绍一个实用的小知识点,如何将List转为`Map`

2022-06-01 21:54:20 7359

原创 程序员的浪漫-用她的名字作画Python版

程序员的浪漫-用她的名字作画Python版hello,大家好,我是一灰灰,之前介绍了一篇使用她的名字来画出她的美图的文章,其中主要使用的Java来实现的,今天呢,我们再来用Python来实现一下同样最终的代码量也不会超过三十行上篇博文超链:* 程序员的浪漫-用她的名字作画Python版 - 一灰灰Blog1. 环境相关这里我们选择python来作为我们的主要绘图武器,至于python的环境安装相关的这里就不介绍了,有兴趣的小伙伴自行探索再python界,操作图片的利器PIL,相信大伙也都清.

2022-05-30 19:18:37 2511 5

原创 MySql之json_extract函数处理json字段

MySql之json_extract函数处理json字段在db中存储json格式的数据,相信大家都或多或少的使用过,那么在查询这个json结构中的数据时,有什么好的方法么?取出String之后再代码中进行解析?接下来本文将介绍一下Mysql5.7+之后提供的json_extract函数,可以通过key查询value值1. 使用方式数据存储的数据是json字符串,类型为我们常用的varchar即可语法:JSON_EXTRACT(json_doc, path[, path] …)若json.

2022-05-30 19:07:27 4027

原创 程序员的浪漫:三十行代码实现用她的名字作幅画

三十行代码实现用她的名字绘幅画

2022-05-25 20:36:21 947

原创 Guava HashMultimap使用及注意事项

guava基本上可以说是java开发项目中,大概率会引入的包,今天介绍的主角是一个特殊的容器 -- `HashMultmap`,可以简单的将它的数据结构理解为`Map<K, Set<V>>`

2022-05-25 20:10:57 586

原创 SpringBoot + ES基本项目搭建实例

SpringBoot快速搭建es使用实例

2022-03-29 21:37:21 3069

原创 Java实现图片转字符输出示例demo

Java实现图片转字符输出示例demo前面几篇博文介绍了使用jdk来对图片做一些有意思的转换,接下来我们再介绍一个有意思的玩法,直接根据图片,输出一个二维字符数组,实现用字符来实现绘画的场景各位小伙伴可能都有看到过一些有趣的注释,比如大佛,美女之类的,通关本文,相信你也很可以很简单的实现类似的场景关键实现,在前面的文章中其实也说到了,下面是超链Java也可以非常简单的实现图片灰度化 原创JavaFun | 实现图片转字符图片示例demo 原创JavaFun | 基于Java实现Gif图转.

2021-12-06 19:07:29 1773 2

原创 SpringBoot系列之拦截器注入Bean的几种姿势

之前介绍过一篇拦截器的基本使用姿势: 【WEB系列】SpringBoot之拦截器Interceptor使用姿势介绍在SpringBoot中,通过实现WebMvcConfigurer的addInterceptors方法来注册拦截器,那么当我们的拦截器中希望使用Bean时,可以怎么整?I. 项目搭建本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发开一个web服务用于测试<dependencies> <!-- 邮.

2021-11-15 19:13:30 3896

原创 SpringBoot系列Mybatis之转义符的使用姿势

【DB 系列】Mybatis 之转义符的使用姿势在 mybatis 的 xml 文件中直接写 sql 比较方便简洁,但是需要注意的是,在 xml 文件中,经常会遇到一些需要转义的场景,比如查询 id < xxx的数据,这个小于号就不能直接写在 sql 中,接下来我们将看一下,mybatis 中的有哪些转义符,可以怎么处理转义问题I.转义1. 转义符在 mybatis 的 xml 文件中,我们最常见的转义符为小于号,如查询 id 小于 100 的数据<select id="xxx..

2021-09-27 20:43:38 2124

原创 SpringBoot系列Mybatis之参数传递的几种姿势

SpringBoot 系列 Mybatis 之参数传递的几种姿势在 mybatis 的日常开发中,mapper 接口中定义的参数如何与 xml 中的参数进行映射呢?除了我们常用的@Param注解之外,其他的方式是怎样的呢?不添加注解默认场景会怎样?接口参数类型为Map/POJO又该如何处理?本文将主要介绍一下mybatis的日常开发中,mapper接口中的定义的参数与xml中占位符的几种映射绑定方式I. 环境配置我们使用 SpringBoot + Mybatis + MySql 来搭..

2021-09-25 21:43:35 660

原创 SpringBoot实战基于异常日志的邮件报警

SpringBoot实战基于异常日志的邮件报警相信所有奋斗在一线的小伙伴,会很关心自己的系统的运行情况,一般来说,基础设施齐全一点的公司都会有完善的报警方案,那么如果我们是一个小公司呢,不能因为基础设施没有,就失去对象的感知能力吧;如果我们的系统大量异常却不能实时的触达给我们,那么也就只会有一个结果–杀个程序猿祭天本文简单的介绍一种实现思路,基于error日志来实现邮件的报警方案I. 项目环境1. 项目依赖本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5...

2021-08-09 23:50:14 1015 1

原创 SpringBoot系列之邮件发送姿势介绍

SpringBoot系列之邮件发送姿势介绍邮件发送,在实际的项目开发中,可能用的不是特别多,如果没有特定的需求,相信也没有多少小伙伴会特意的去关注,那么如果现在我们希望针对项目做一个异常的报警系统,当出现异常的时候,可以向指定的小伙伴发送邮件提醒,那么让我们来实现这个功能,可以怎么办呢?这里介绍一下如何使用SpringBoot封装好的MailSender来实现邮件发送I. 项目环境1. 项目依赖本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + ID..

2021-08-09 23:44:45 725 1

原创 SpringBoot + Mybatis系列之插件机制 Interceptor

【SpringBoot + Mybatis系列】插件机制 Interceptor在 Mybatis 中,插件机制提供了非常强大的扩展能力,在 sql 最终执行之前,提供了四个拦截点,支持不同场景的功能扩展Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)Re..

2021-08-09 23:41:33 1246

原创 SpringBoot系列 Mybatis 之自定义类型转换 TypeHandler

SpringBoot系列 Mybatis 之自定义类型转换 TypeHandler在使用 mybatis 进行 db 操作的时候,我们经常会干的一件事情就是将 db 中字段映射到 java bean,通常我们使用ResultMap来实现映射,通过这个标签可以指定两者的绑定关系,那么如果 java bean 中的字段类型与 db 中的不一样,应该怎么处理呢?如 db 中为 timestamp, 而 java bean 中定义的却是 long通过BaseTypeHandler来实现自定义的类型转换..

2021-08-09 23:31:58 1374

原创 【SpringBoot Mybatis系列】MapperMapper接口与Sql绑定几种姿势

【DB系列】SpringBoot系列Mybatis之Mapper接口与Sql绑定几种姿势通常我们在使用Mybatis进行开发时,会选择xml文件来写对应的sql,然后将Mapper接口与sql的xml文件建立绑定关系,然后在项目中调用mapper接口就可以执行对应的sql那么如何将Mapper接口与sql进行绑定呢?本文将介绍四种常见的姿势默认策略SpringBoot配置参数mybatis.mapper-locations<mapper>指定SqlSessionFactory..

2021-07-26 16:21:09 1984

原创 【SpringBoot + Mybatis系列】Mapper接口注册的几种方式

【SpringBoot + Mybatis系列】Mapper接口注册的几种方式SpringBoot项目中借助Mybatis来操作数据库,对大部分java技术栈的小伙伴来说,并不会陌生;我们知道,使用mybatis,一般会有下面几个Entity: 数据库实体类Mapper: db操作接口Service: 服务类本片博文中的注解,放在Mapper上,你知道注册Mapper有几种方式么(这个问题像不像"茴"字有几个写法????)I. 环境准备1. 数据库准备使用mysql作为本文的实例数据

2021-07-26 16:15:03 1026 1

原创 SpringBoot缓存注解@Cacheable之自定义key策略及缓存失效时间指定

上一篇博文介绍了Spring中缓存注解@Cacheable @CacheEvit @CachePut的基本使用,接下来我们将看一下更高级一点的知识点key生成策略超时时间指定I. 项目环境1. 项目依赖本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA + redis5.0进行开发开一个web服务用于测试<dependencies> <dependency> <groupId>.

2021-07-02 19:38:34 9756 1

原创 Spring系列缓存注解@Cacheable @CacheEvit @CachePut 使用姿势介绍

SpringBoot系列缓存注解@Cacheable @CacheEvit @CachePut使用姿势介绍Spring在3.1版本,就提供了一条基于注解的缓存策略,实际使用起来还是很丝滑的,本文将针对几个常用的注解进行简单的介绍说明,有需要的小伙伴可以尝试一下本文主要知识点:@Cacheable: 缓存存在,则使用缓存;不存在,则执行方法,并将结果塞入缓存@CacheEvit: 失效缓存@CachePut: 更新缓存I. 项目环境1. 项目依赖本项目借助SpringBoot 2...

2021-07-02 19:32:51 696 9

原创 SpringBoot基础系列@Value 之字面量及 SpEL使用知识点介绍篇

【SpringBoot 基础系列】@Value 之字面量及 SpEL 知识点介绍篇承接上一篇博文【SpringBoot 基础系列】@Value 中哪些你不知道的知识点 中提及到但没有细说的知识点,这一篇博文将来看一下@Value除了绑定配置文件中的属性配置之外,另外支持的两种姿势字面量表达式支持SpEL 语法支持I. 项目环境1. 项目依赖本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发开一个 web 服务用于测试&lt..

2021-06-16 19:47:59 441

原创 SpringBoot基础系列之自定义配置源使用姿势实例演示

【SpringBoot基础系列】自定义配置源的使用姿势介绍前面一篇博文介绍了一个@Value的一些知识点,其中提了一个点,@Value对应的配置,除了是配置文件中之外,可以从其他的数据源中获取么,如从 redis,db,http 中获取配置?了解过 SpringCloud Config 的可以给出确切的答案,可以,而且用起来还老爽了,远程配置,支持配置动态刷新,接下来我们来看一下,在 SpringBoot 中,如何配置自定义的数据源I. 项目环境1. 项目依赖本项目借助SpringBoot..

2021-06-12 12:44:41 180

原创 SpringBoot基础系列之AOP结合SpEL实现日志输出中两点注意事项

【SpringBoot 基础系列】AOP结合SpEL实现日志输出的注意事项一二使用 AOP 来打印日志大家一把都很熟悉了,最近在使用的过程中,发现了几个有意思的问题,一个是 SpEL 的解析,一个是参数的 JSON 格式输出I. 项目环境1. 项目依赖本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发开一个 web 服务用于测试<dependencies> <dependency> ..

2021-06-12 12:27:49 360

原创 SpringBoot基础篇之@Value中哪些你不知道的知识点

SpringBoot基础篇@Value中哪些你不知道的知识点看到这个标题,有点夸张了啊,@Value 这个谁不知道啊,不就是绑定配置么,还能有什么特殊的玩法不成?(如果下面列出的这些问题,已经熟练掌握,那确实没啥往下面看的必要了)@Value对应的配置不存在,会怎样?默认值如何设置配置文件中的列表可以直接映射到列表属性上么?配置参数映射为简单对象的三种配置方式除了配置注入,字面量、SpEL支持是否了解?远程(如db,配置中心,http)配置注入可行否?接下来,限于篇幅问题,将针..

2021-06-12 12:09:28 562 2

原创 【SpringBoot 基础系列】接口上注解 AOP 拦截不到场景兼容实例演示

【SpringBoot 基础系列】接口上注解 AOP 拦截不到场景兼容在 Java 的开发过程中,面向接口的编程可能是大家的常态,切面也是各位大佬使用 Spring 时,或多或少会使用的一项基本技能;结果这两个碰到一起,有意思的事情就发生了,接口方法上添加注解,面向注解的切面拦截,居然不生效这就有点奇怪了啊,最开始遇到这个问题时,表示难以相信;事务注解也挺多是写在接口上的,好像也没有遇到这个问题(难道是也不生效,只是自己没有关注到?)接下来我们好好瞅瞅,这到底是怎么个情况I. 场景复现这个..

2021-06-08 19:38:26 2476

原创 【SpringBoot基础系列】手把手实现国际化支持实例开发

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nhXxjpp-1622682101745)(https://spring.hhui.top/spring-blog/imgs/210509/logo.jpg)]【SpringBoot基础系列】手把手实现国际化支持实例开发国际化的支持,对于app开发的小伙伴来说应该比价常见了;作为java后端的小伙伴,一般来讲接触国际化的机会不太多,毕竟业务开展到海外的企业并没有太多SpringBoot提供了国际化的支持,网上也有相关

2021-06-03 09:07:14 288 4

原创 【SpringBoot 基础系列】事件机制的两种消费姿势

借助Spring可以非常简单的实现事件监听机制,本文简单介绍下面向接口与注解监听的两种姿势【SpringBoot 基础系列】事件机制的两种消费姿势I. 项目环境本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发为了后面的发布事件验证,起一个web服务<dependencies> <dependency> <groupId>org.springframework.boot&l.

2021-06-03 08:58:32 197 1

原创 Zookeeper从0到1实现一个分布式锁

【中间件】Zookeeper从0到1实现一个分布式锁分布式锁,在实际的业务使用场景中算是比较常用的了,而分布式锁的实现,常见的除了redis之外,就是zk的实现了,前面一篇博文介绍了zk的基本概念与使用姿势,那么如果让我们来记住zk的特性来设计一个分布式锁,可以怎么做呢?I. 方案设计1. 创建节点方式实现zk有四种节点,一个最容易想到的策略就是创建节点,谁创建成功了,就表示谁持有了这个锁这个思路与redis的setnx有点相似,因为zk的节点创建,也只会有一个会话会创建成功,其他的则会抛..

2021-04-28 19:23:51 134

原创 Spring整合ZooKeeper基础使用介绍

【中间件】Spring整合ZooKeeper基础使用介绍ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,广泛应用于分布式系统中,比如有用它做配置中心,注册中心,也有使用它来实现分布式锁的,作为高并发技术栈中不可或缺的一个基础组件,接下来我们将看一下,zk应该怎么玩,可以怎么玩本文作为第一篇,将主要介绍基于zk-client的基本使用姿势,依次来了解下zk的基本概念I. 准备1. zk环境安装用于学习试点目的的体验zk功能,安装比较简单,可以参考博文: 210310-Zo..

2021-04-28 19:16:18 456

原创 常见Bean拷贝框架下划线驼峰互转扩展支持

上一篇博文常见Bean拷贝框架使用姿势及性能对比 介绍了几种bean拷贝框架的使用姿势以及性能对比,主要适用的是属性名一致、类型一致的拷贝,在实际的业务开发中,经常会用到驼峰和下划线的互转,本文在之前的基础上进行扩展cglibhutool常见Bean拷贝框架下划线驼峰互转扩展支持I. 驼峰下划线拷贝支持上面的使用都是最基本的使用姿势,属性名 + 类型一致,都有getter/setter方法,我们实际的业务场景中,有一个比较重要的地方,就是下划线与驼峰的转换支持,如果要使用上面的框架,可以

2021-04-28 19:08:44 2283

原创 常见Bean拷贝框架使用姿势及性能对比

常见Bean拷贝框架使用姿势及性能对比Bean属性拷贝,主要针对几个常用的拷贝框架进行性能对比,以及功能扩展支持选用的框架cglib (直接使用Spring封装的BeanCopier)apacheMapStructSpringHuToolI.背景当业务量不大时,不管选择哪个框架都没什么问题,只要功能支持就ok了;但是当数据量大的时候,可能就需要考虑性能问题了;再实际的项目中,正好遇到了这个问题,不仅慢,还发现会有锁竞争,这特么就尼普了项目中使用的是Spring的 BeanUti.

2021-04-19 23:04:10 1380 1

原创 ElastchSearch 基本使用姿势

ElastchSearch 基本使用姿势,如常见的添加文档常见的查询姿势修改/删除文档ElastchSearch 基本使用姿势1. 添加文档首次添加文档时,若索引不存在会自动创建; 借助 kibana 的dev-tools来实现 es 的交互POST first-index/_doc{ "@timestamp": "2021-03-31T01:12:00", "message": "GET /search HTTP/1.1 200 1070000", "user": {

2021-04-08 19:23:28 359

Java 8函数式编程

Java 8函数式编程

2017-08-20

TensorFlow 指南

TensorFlow 指南

2017-08-20

LUA实例学习

lua通过实例进行学习,适合初学LUA和有一定编程基础的人群

2012-11-17

menucoder视频播放转码

menucoder 视频转码 命令行方式的视频处理软件

2012-07-27

Visual_Assist_X_10.7.1903.0破解

VisualAssistXXX 10.7.1903.0的破解器

2012-07-27

C 语言 进制转化函数

各种进制之间的相应转换 C 语言环境下实现,源代码下载

2011-09-12

空空如也

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

TA关注的人

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