自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

若鱼的专栏

JAVA开发

  • 博客(217)
  • 资源 (50)
  • 问答 (1)
  • 收藏
  • 关注

原创 那些年,我们写过的低级BUG,警钟长鸣

看下这段代码有哪些问题:public static MultiPriceInfo getMultiPriceInfo(List<MultiPriceInfo> multiPriceInfos, String code) { if(CollectionUtils.isEmpty(multiPriceInfos)){ return null; } for(MultiPriceInfo priceInfo : multiPric

2020-10-29 14:43:10 843 1

原创 Cannot find module @rollup/rollup-win32-x64-msvc

【代码】Cannot find module ‘@rollup/rollup-win32-x64-msvc‘

2025-03-20 11:26:22 376

原创 gradlew在gitlab ci没可执行权限-permission denied

644没有执行权限。显然,gradlew没有可执行权限。

2025-03-19 17:11:51 230

原创 mapstruct入门

只需要在接口上添加@Mapper注解即可,mapstruct会创建一个具有相同方法的实现类,并自动生成所有的setter和getter.@Mapper.builder().build();

2025-01-27 11:05:50 305

原创 Mockito快速入门

SpringBootTest注解来加载整个Spring应用上下文, @MockBean@SpyBean注解用于在Spring应用上下文中注入一个模拟的Bean,它将在测试开始时自动添加到Spring应用上下文中。除了 mock()/@Mock,还可使用 spy()/@Spy,两者区别是 spy 是部分mock,如果不打桩,则执行的是真实的方法。@Mock 是 Mockito 中用的最多的注解,我们用它来创建并注入mock对象,而不用手动调用 Mockito.mock 方法。也可以使用 @Mock 注解。

2025-01-23 13:50:38 917

原创 SpringBoot集成Kafka和avro和Schema注册表

【代码】SpringBoot集成Kafka和avro序列化。

2024-11-30 15:50:52 510

原创 gRPC-集成Springboot

服务端首先添加相关依赖:添加相关的配置服务端service代码:客户端添加依赖添加配置客户端调用:完整的源码下载:https://github.com/xjs1919/learning-demo/tree/master/grpc-demo

2024-11-04 16:37:04 366 1

原创 gRPC-拦截器

在构建 gRPC 应用程序时,无论是客户端应用程序,还是服务器端应用程序,在远程方法执行之前或之后,都可能需要执行一些通用逻辑。gRPC 提供了简单的 API,用来在客户端和服务器端的 gRPC 应用程序中实现并安装拦截器。它是 gRPC 核心扩展机制之一,在一些使用场景中(如日志、身份验证、授权、性能度量指标、跟踪以及其他一些自定义需求),拦截器拦截每个 RPC 调用的执行,可以使用拦截器进行日志记录、身份验证/授权、指标收集以及许多其他可以跨 RPC 共享的功能。

2024-11-04 14:35:10 286

原创 gRPC-4种通信模式

比如:客户端向服务端发送了一个查询数据库的请求,服务端持续返回多次结果。客户端数据流模式:也称客户端流式 RPC,与服务端数据流模式相反,客户端持续向服务端发送数据流,在发送结束后,由服务端返回一个响应。比如:客户端有一万条数据 ,分批多次请求服务端,服务端接收后把这些数据都存到数据库,然后返回一次结果给客户端。比如:客户端有一万条数据 ,分批多次请求服务端,服务端每次接收后存到数据库后都发送一次结果给客户端。服务端数据流模式:也称服务端流式 RPC,即客户端发起一次请求,服务端可以连续返回数据流。

2024-11-04 12:05:16 717

转载 gRPC-入门案例

了解 gRPC 之前先来看看什么是 RPC。RPC 全称是 Remote Procedure Call,中文一般译作远程过程调用。RPC 是一种进程间的通信模式,程序分布在不同的地址空间里。简单来说,就是两个进程之间互相调用的一种方式。gRPC 则是一个由 Google 发起的开源的 RPC 框架,它是一个高性能远程过程调用 (RPC) 框架,可以在任何环境中运行。gRPC 通过对负载均衡、跟踪、健康检查和身份验证的可插拔支持,有效地连接数据中心内和数据中心之间的服务。

2024-11-04 09:52:49 90

原创 SpringBoot集成SSE

例如可以在服务端将每次发送的事件ID值自动加 1,当浏览器接收到该事件ID后,下次与服务端建立连接后再请求的 Header 中将同时提交该事件ID,服务端检查该事件ID是否为上次发送的事件ID,如果与上次发送的事件ID不一致则说明浏览器存在与服务器连接失败的情况,本次需要同时发送前几次浏览器未接收到的数据。事件的唯一标识符,浏览器会跟踪事件ID,如果发生断连,浏览器会把收到的最后一个事件ID放到 HTTP Header。整数值,单位 ms,如果与服务器的连接丢失,浏览器将等待指定时间,然后尝试重新连接。

2024-10-23 17:26:14 6138 1

原创 Zookeeper占的那些端口 - 从Eclipse Jetty安全漏洞说起

起因系统扫描报Jetty漏洞,很奇怪,系统中明明没有使用Jetty! 后来发现是Zookeeper中会使用Jetty,因为有使用Kafka,所以也使用了Zookeeper。Zookeeper使用Jetty主要干2个事情:1)提供给Prometheus用来输出监控指标用,占用端口70002)提供给AdminServer用来查询系统配置项,占用端口8080也就是说,只要禁用这两个功能就可以了。1)禁用7000端口看下官方文档的描述:Since 3.6.0 ZooKeeper binary pa

2024-10-11 14:37:06 1627 1

原创 如何用Prometheus监控禁用了Actuator的SpringBoot?

换一个思路,还是照常引用actuator,但是把访问路径给禁用了,然后自己写一个controller,把actuator的内容原样输出出来不就行了,同时给这个接口加上权限认证,巧了,prometheus就支持抓取接口上加basic认证。问题是,actuator有安全风险,安全漏洞扫描会通不过,虽然改了端口号,改了访问路径,领导还是不同意啊,难不成自己写那么多的监控指标?prometheus中加上job,grafana中添加上dashboard,一个漂亮的监控页面就出来了。

2024-09-25 16:33:22 482

转载 prometheus实战---告警模板编写

Receiver: 接收器的名称.Status: 如果正在告警,值为firing,恢复为resolved.Alerts: 所有告警对象的列表,是一个列表,.Alerts.Firing: 告警列表.Alerts.Resolved: 恢复列表.GroupLabels: 告警的分组标签.CommonLabels: 所有告警共有的标签.CommonAnnotations: 所有告警共有的注解.ExternalURL: 告警对应的alertmanager连接地址。

2024-09-24 18:08:30 289

原创 MySQL记录存储过程执行的错误信息

【代码】MySQL记录存储过程执行异常的错误信息。

2024-09-24 15:59:17 504

原创 茴香豆的茴的写法-SpringBoot接收客户端请求的几种方式

知道这些方式有啥用呢?有些时候,我们需要在starter中内置一些controller,但是又不想被其他的组件扫描到(比如swagger),这个时候用处就来了。

2024-09-21 15:57:11 300

转载 使用LinkedHashMap实现固定大小的LRU缓存

【代码】使用LinkedHashMap实现固定大小的LRU缓存。

2024-09-19 21:36:28 86

原创 MySQL慢查询日志

【代码】MySQL慢查询日志。

2024-09-18 16:58:41 281

原创 Integer是线程安全的吗?AtomicInteger呢?

不可变类简单来说是其实例不能被修改的类。包含在每个实例中的所有信息在对象的生命周期中是固定的,因此不会观察到任何变化。Java 平台类库包含许多不可变的类,包括 String 类、基本类型包装类以及 BigInteger 类和 BigDecimal 类。有很多很好的理由:不可变类比可变类更易于设计,实现和使用。Integer虽然是线程安全的,但是如果要实现i++这种操作,Integer就无法保证线程安全了,这正是AtomicInteger的用武之地。很明显,包装类Integer是线程安全的。

2024-08-16 11:57:42 534

原创 @Transactional如何在事务方法中正确开启异步任务?

这个时候因为发邮件是异步执行的,因此会先于注册方法执行,此时事务还没提交,因此根据id查询不到数据,导致抛出异常:user信息不存在。注解用于事务控制,用户注册完成以后,为了不阻塞主线程,使用异步的方式向用户发邮件,同时在用户注册方法的最后加了一个。以上代码的含义就是当事务提交以后会回调到这个监听方法中,因为事务已经提交,此时是可以正常查询到数据的。因为在发送邮件之前,已经把事务提交掉了,因此不会出现查不到数据的情况。这种方式可行,但是,代码的侵入性太高,不推荐。,但是注册完成以后,改成发。

2024-07-19 15:51:45 828

原创 Vue3集成echarts

vue3集成echarts

2024-05-29 10:11:05 390

原创 CentOS7配置NFS文件共享

CentOS7配置NFS文件共享

2024-04-25 10:22:10 460 1

原创 SpringBoot集成WebService

浏览器访问:http://localhost:8888/webservice。

2024-03-18 14:47:58 762

原创 Nginx配置WebSocket

Nginx配置WebSocket

2024-03-07 10:33:30 1064

原创 SpringBoot集成JSP和war包部署到Tomcat

Springboot集成JSP和war包部署到Tomcat

2024-03-06 11:32:18 536

原创 Spring-Cloud-Gateway集成Sentinel限流

Gateway集成Sentinel限流

2024-02-26 17:51:23 924

原创 RabbitMQ开启MQTT协议支持

RabbitMQ开启MQTT协议支持

2024-02-22 16:58:15 3782 2

原创 SpringBoot集成H2数据库

SpringBoot集成H2数据库

2024-02-01 12:26:57 901 1

原创 SpringCloud-Knife4j文档聚合

2种方式都可以实现文档聚合的效果,显然网关中手动做聚合会更方便,因为不需要额外启动一个专门做文档聚合的微服务

2024-01-26 14:02:24 1145

原创 Java读取含中文的Properties配置文件

Java读取含中文的Properties配置文件

2023-12-18 13:53:41 316

原创 MySQL5.7忘记root密码

MySQL5.7忘记root密码

2023-12-15 18:11:00 419

原创 EasyExcel使用模板导出复杂Excel

EasyExcel使用模板导出复杂Excel

2023-12-11 14:00:19 1413

原创 SpringBoot集成WebSocket

SpringBoot集成WebSocket

2023-12-08 18:14:08 633

原创 SpringBoot集成knife4j

SpringBoot集成knife4j

2023-12-03 15:10:57 835

原创 SpringBoot文件上传报错:Cannot delete C:\Users\16382\AppData\Local\Temp\tomcat.8080.****

SpringBoot文件上传报错:Cannot delete C:\Users\16382\AppData\Local\Temp\tomcat.8080

2023-11-22 14:15:06 3509 1

原创 Mybatis的Mapper接口传递多个参数的时候必须要加@Param注解吗?

Mybatis的Mapper接口传递多个参数的时候必须要加@Param注解吗?

2023-11-16 21:08:00 2021 4

原创 Spring-Cloud-Openfeign如何做熔断降级?

Spring-Cloud-Openfeign如何做熔断降级?

2023-09-12 08:23:58 1659

原创 Spring-Cloud-Openfeign如何支持数据压缩?

Spring-Cloud-Openfeign如何支持数据压缩?

2023-09-08 08:55:17 797

原创 Spring-Cloud-Openfeign如何传递用户信息?

Spring-Cloud-Openfeign如何传递用户信息?

2023-09-02 09:44:20 2123

原创 Spring-Cloud-Gateway如何自定义路由过滤器?

Spring-Cloud-Gateway如何自定义路由过滤器?

2023-07-22 11:44:55 818

全国行政区划2022年版

全国行政区划2022年版

2022-08-31

省市区名称与代码的SQL

省市区的mysql,可以直接导入数据库。省市区的mysql,可以直接导入数据库。

2017-11-09

Nginx安装配置

nginx源码安装和配置,集成cache-purge、https,希望参考:《实战Nginx:取代Apache的高性能Web服务器》《Nginx教程从入门到精通》《HTTPS权威指南 在服务器和Web应用上部署SSL&TLS;和PKI》

2017-10-13

apache安装并配置HTTPS

apache源码安装并配置HTTPS,首先要安装apr、apr_util、pcre、openssl,资源中包含了所需的所有的源码和安装文档。

2017-10-11

记录应用的接口访问信息

基于SpringBoot,实现记录应用的接口访问信息,包括接口的访问次数、正常调用次数、异常调用次数、接口的平均访问时间、最大访问时间、最小访问时间。

2017-09-26

Redis4基于CentOS6集群搭建

Redis4基于CentOS6集群搭建,3主3从,文档是安装在同一台机器上,实际可以安装在不同的机器,启动集群的时候指定ip地址就可以。

2017-09-07

Oracle11gR2 CentOS7 静默安装

Oracle11gR2 CentOS7 静默安装,开机自启动,等等

2017-08-15

navicat for mysql解压版

navicat for mysql解压版

2017-08-03

EmEditor Pro15.1.5x64解压版

EmEditor Pro15.1.5x64解压版

2017-08-03

jd反编译工具

jd-gui反编译,jdeclipse插件

2017-08-03

gitlab安装-配置-运维-使用详细说明

gitlab安装-配置-运维-使用详细说明

2017-07-21

Axure8.0破解版+chrome插件

Axure8.0破解版+chrome插件

2017-07-03

dubbo调用的例子

dubbo-interface dubbo-provider dubbo-consumer

2016-09-25

Spring Boot集成MyBatis与分页插件

Spring Boot集成MyBatis与分页插件

2016-06-18

maven+spring+mybatis配置

1.非web环境下spring如何与mybatis集成 2.maven如何打可以直接运行的jar包 3.maven如何用profile动态打包jdbc.properties 4.maven如何把mybatis的mapper.xml一起打包到jar中

2015-12-17

Apache CXF + Spring3 + REST + JSON配置

Apache CXF配置REST服务,集成到Spring当中。

2015-09-01

Android-加速传感器或者OrientationEventListener做横竖屏切换

在播放视频的时候,可能要做横竖屏的切换,但是,用户可以设置自己的手机关掉屏幕旋转,这个时候就需要想其他的办法了,比如:加速传感器或者OrientationEventListener。

2015-08-13

Android日期时间选择控件

android的DatePicker与TimePicker都受android系统版本的影响,展示风格非常不统一,而且不能同时选择日期与时间。这个控件就能做到。

2015-08-12

Android-对ListView的Adapter的一种简单封装

对ListView的Adapter的一种简单封装,详细:http://blog.youkuaiyun.com/goldenfish1919/article/details/47039985

2015-07-24

Android-自定义显示价格的PriceView

如何用onDraw和onMeasure自定义view

2015-03-18

Android-maven配置multidex打包

工程大了以后,不可避免就会出现方法数目超出65536的限制,很幸运的是新的android提供了多dex打包的方式可以解决这个问题。本资源就是演示如何用android-maven-plugin打多dex包。

2014-12-18

launch mode 测试demo

android支持4中launch mode,本例就是想看下他们之间的区别。

2014-11-03

Android-用ListView模仿ExpandableListView

ListView的adapter有一个getItemViewType()和getViewTypeCount()这么两个方法,挺好用的,主要是用来练习这两个方法的。

2014-08-01

Android-异步图片加载器

在ListView中加载图片是非常常见的场景,图片的加载要满足下面的几个要求: (1)不管图片是位于网络还是本地,加载都不应该是同步的,而是应该异步去加载,比如用AsyncTask。 (2)为了避免重复下载图片和页面展示的速度,一般要做缓存,比如最常见的LruCache。 (3)为了提高Listview的性能,我们一般会用holder来重用Listview的item。 因为item会重用,所以当图片下载时间很长的情况下,就会引起页面上图片显示错乱!本文的图片加载器可以避免这个问题

2014-05-09

Android-Popupwindow和Dialog做弹出窗口

(1)Popupwindow在显示之前一定要设置宽高,Dialog无此限制。 (2)Popupwindow默认不会响应物理键盘的back,除非显示设置了popup.setFocusable(true);而在点击back的时候,Dialog会消失。 (3)Popupwindow不会给页面其他的部分添加蒙层,而Dialog会。 (4)Popupwindow没有标题,Dialog默认有标题,可以通过dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);取消标题 (5)二者显示的时候都要设置Gravity。如果不设置,Dialog默认是Gravity.CENTER。 (6)二者都有默认的背景,都可以通过setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));去掉。

2014-05-04

Android录音与播放

android中 (1)使用MediaRecorder做录音 (2)使用MediaPlayer播放录音

2014-04-29

Android-拍照、打开本地相册

(1)调用系统的拍照功能 (2)调用系统的相册 (3)获取文件的绝对路径

2014-03-13

Android-网络通信框架Volley使用详解

1.发送get 2.发送post 3.获取图片 4.发送https 5.获取cookie 6.上传cookie 7.自定义request 8.设置超时

2014-03-12

Android-根据EditText内容的变化,自动追加TextView

根据EditText内容的变化,自动追加TextView,可以不用适配二者之间的间距

2014-02-27

前面部分可以编辑后面部分不可编辑的EditText

有一个需求是这样的,页面上有一个输入框,供用户输入手机号码,如果通讯录里面存在这个号码,会自动把名字追加到号码后面。这个需求变态的地方在于,假如用一个EditText+TextView,那么不好控制二者之间的距离,就算是做了各种适配,但是用户可以设置系统的字体,仍然显示很难看!没办法,之好在一个EditText里面来实现号码部分可编辑,名字是自动追加上的。

2014-02-25

Android-从页面右侧滑出通讯录

点击从页面右侧滑出通讯录 /*主要参考: * * 1. Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音 * http://blog.youkuaiyun.com/xiaanming/article/details/12684155 * 2. Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 * http://blog.youkuaiyun.com/xiaanming/article/details/11066685 * 3. Android系统联系人全特效实现(上),分组导航和挤压动画 * http://blog.youkuaiyun.com/guolin_blog/article/details/9033553 */

2014-02-22

Android-部分可编辑的EditText

有一个需求是这样的,页面上有一个输入框,供用户输入手机号码,如果通讯录里面存在这个号码,会自动把名字追加到号码后面。这个需求变态的地方在于,假如用一个EditText+TextView,那么不好控制二者之间的距离,就算是做了各种适配,但是用户可以设置系统的字体,仍然显示很难看!没办法,之好在一个EditText里面来实现号码部分可编辑,名字是自动追加上的。

2014-02-20

自动购票2014-01-11版

(1)不支持验证码自动识别 (2)不支持一次顶多个票

2014-01-11

SharedPreferences帮助类

(1)用单例注册表模式来管理所有的SharedPreferences文件 (2)支持批量写入 (3)支持按版本号写入key (4)对key的写入是异步,提高效率 原理请参考:http://blog.youkuaiyun.com/goldenfish1919/article/details/17629541

2013-12-31

Android自定义组件-MultiTextView(更新)

可以在一个固定宽度的区域显示多个不定长度的字符串,类似于淘宝上商品详情的尺码和颜色分类那种。

2013-12-25

如何让TextView的人民币符号是¥(下面是两道杠)而不是一道杠

如何让TextView的人民币符号是¥(下面是两道杠)而不是一道杠

2013-12-18

android自定义组件-刮刮卡

刮刮卡,引用在:http://gundumw100.iteye.com/blog/1932020

2013-12-13

ListView后台更新报错:java.lang.IllegalStateException

java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131230720, class android.widget.ListView) with Adapter(class com.example.listviewdemo.UserListAdapter)]

2013-12-13

Android自定义组件-MultiTextView

可以在一个固定宽度的区域显示多个不定长度的字符串,类似于淘宝上商品详情的尺码和颜色分类那种。

2013-12-11

Android的ExpandableListView+CheckBox全选

ExpandableListView的group和child里面都含有CheckBox框,二者联动。

2013-11-22

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

TA关注的人

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