自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(727)
  • 问答 (50)
  • 收藏
  • 关注

原创 idea 设置启动项指定使用的nacos namespace

各个研发的nacos配置要做隔离,这时候通常有两种方式, 第一种修改bootstarp.yaml文件 指定研发自己的配置,第二种更优雅,只需要修改idea启动项, 对代码没有侵入。

2024-04-19 09:39:09 79

原创 关于文件上传功能的安全方面的考量

最近做了一个文件上传的功能,下面说下要考虑哪些方面的问题。

2024-01-13 10:14:09 662

原创 mybatisPlus 将List<String>字段转成json字符串,使用JacksonTypeHandler以及自定义类型处理器实现

DO类维护 autoResultMap = trueDO类指定字段 指定类处理器 @TableField(typeHandler = StringListTypeHandler.class)@Data@Builder/*** 编号,数据库递增*/@TableId/*** 访问令牌*//*** 刷新令牌*//*** 用户编号*//*** 用户类型* 枚举 {@link UserTypeEnum}*//*** 客户端编号tong。

2024-01-08 16:38:58 1581 1

原创 多module项目的springboot配置swagger

项目使用swagger提供接口文档功能, 下面演示下多module的springboot 项目是怎么配置。通过为每个module设置独立的分组,完成分组切换功能, 下面举个例子。

2023-12-28 13:55:07 543

原创 自定义security的权限验实现 @EnableGlobalMethodSecurity(prePostEnabled = true)

我们使用SPEL的方式自定义实现权限控制,比如: @PreAuthorize(“@customPermission.hasPermission(‘system:user:create’)”) 代表着调用customPermission bean的hasPermission 返回true代表有权限,false没有权限。securedEnabled = true 表示启用 @Secured 注解,允许在方法上使用 @Secured 注解定义基于角色的访问控制。

2023-12-22 17:28:28 506

原创 security antMatchers(HttpMethod method, String... antPatterns)实现特定注解无需登录认证功能

antMatchers(HttpMethod method, String…antPatterns) 是 Spring Security 中用于配置 特定 HTTP 方法和 URL 模式的安全规则。antPatterns 表示要匹配的 URL 模式,可以指定多个模式。HttpMethod method 表示要匹配的 HTTP 方法(例如 GET、POST、PUT 等)。项目中某些接口不需要认证, 通过注解实现相对于其他的security配置会更灵活。

2023-12-22 10:25:51 661

原创 使用自定义的token认证过滤器替换security的认证功能

spring-boot-starter-security不够灵活, 项目需要二次开发。下面展示一个替换security认证功能的替代方案。

2023-12-21 11:00:01 411

原创 AuthenticationEntryPoint和AccessDeniedHandler接口用法

AuthenticationEntryPoint 接口是 Spring Security 中的一个接口,用于处理在用户尝试访问受保护资源时出现的身份验证异常。它定义了一个方法 commence,该方法在身份验证失败时被调用,允许应用程序自定义处理方式,例如重定向到登录页面、返回特定的错误响应等。AccessDeniedHandler 访问一个需要需要认证的资源,身份认证成功(登录成功) 但是角色和权限不足时 该接口会被调用, 用来返回: 重定向到错误页面、返回特定的错误响应等。

2023-12-20 16:23:13 616

原创 开发阶段 临时关闭Security权限验证

引入依赖spring-boot-starter-security 之后, 默认开启权限验证, 访问返回401,实际开发阶段需要暂时关闭权限验证.启动类排除SecurityAutoConfiguration.class。

2023-12-20 09:42:03 395

原创 org.springframework.boot.autoconfigure.AutoConfiguration.imports新版自动配置

springboot2.7.0之后的版本 自动配置方式有了变化, 新版兼容旧版。

2023-12-19 17:35:53 404

原创 打包运行报no main manifest attribute

打包运行报错:打包运行报no main manifest attribute, 包的大小也只有几十kb。spring-boot-maven-plugin添加repackage配置,这会把引入jar。

2023-11-26 10:23:30 533

原创 java.lang.UnsupportedClassVersionError: org/springframework/boot/maven/RepackageMojo has been compil

spring-boot-maven-plugin 指定版本, 版本和springboot报错一致, 最新版不支持repackage 配置。

2023-11-26 10:20:05 724

原创 spring-boot-admin-starter-server监控springboot项目

监控三件套Prometheus、Grafana、Alertmanager 部署起来太复杂,如果公司没有运维而且项目很小就可以使用spring-boot-admin-starter-server替代。这个包使用起来还是很简单的, 下面就实现一个对springCloud项目的监控。启动类上添加注解 @EnableAdminServer。

2023-11-22 17:35:57 339

原创 jenkins springCloud项目优雅下线

【代码】jenkins springCloud项目优雅下线。

2023-11-22 14:05:08 798

原创 -bash: ./deploy.sh: /bin/bash^M: bad interpreter: No such file or directory

【代码】-bash: ./deploy.sh: /bin/bash^M: bad interpreter: No such file or directory。

2023-11-21 10:39:48 659

原创 consul做配置中心的几个要点

启动项目可以看到生效的配置,即: confg/demo-name,multiple/data,confg/demo-name,dev/data, demo-name, config/public,multiple/data, …公司使用consul做配置中心, 使用了几个配置合成了最终的配置, 这点和nacos不同, 下面使用我的本地环境举个例子。

2023-09-05 11:23:11 235

原创 ubuntu安装单机的Consul

公司使用Consul做注册发现中心以及管理配置,之前没有用过consul, 现在记录下ubuntu部署的过程。默认只能本地访问,所以不限制ip的选项 -client 0.0.0.0。

2023-08-30 17:36:25 331

原创 ubuntu18.04 安装php7.4-xdebug

apt install php7.4-xdebug 下载失败, 只好通过编译解决了。https://xdebug.org/wizard 输入php -i的执行结果。

2023-07-27 20:03:05 459

原创 laravel门面实现原理之源码分析

Route::get 会调到父类的魔术方法__callStatic第一步: getFacadeRoot 从容器中获取名称是router的实例第二步: 调用router实例的get方法, 入参是$args。

2023-07-18 22:05:47 1110

原创 laravel 使用redis list做队列是怎么保证消息不丢失的(php artisan queue:work源码解析)

源码解析篇幅太长,这里总结下为什么redis list做队列却可以做到不丢数据?lua脚本弹出job之后 先放入queue:name:reserved zset中, 执行过程中遇到异常 则将job从queue:name:reserved删除,并放入queue:name:delayed中,一旦达到了最大重试次数 则删除job, 且可以保存失败任务到数据库中。是的 数据库是保底策略。

2023-07-18 15:32:55 491

原创 laravel queue timeout和retry_after配置的区别

【代码】laravel queue timeout和retry_after配置的区别。

2023-07-17 17:02:34 457

原创 rocketmq消费demo

【代码】rocketmq消费demo。

2023-06-07 17:08:27 277

原创 nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result

查出多个结果,抛出了异常。ServiceImpl.getOne会在查出多个结果中选择一个。

2023-05-06 11:56:37 224 1

原创 线程池应该设多大

【代码】线程池应该设多大。

2022-10-14 16:22:18 221

原创 信号量和互斥锁的区别

【代码】信号量和互斥锁的区别。

2022-10-12 19:59:10 205

原创 java实现php substr函数(截取字节)

2.1 思路: 字符串转成byte数组,从byte数组中截取需要的部分, 然后再转回字符串。2. java substring截取的是字符, 那么java怎么才能实现subStr呢?1.2 如果字符串编码是gbk 那么中文占2个字节。

2022-09-20 16:32:15 425

原创 stream去重

【代码】stream去重。

2022-09-19 15:08:48 6120

原创 推荐一个对象对比器

【代码】推荐一个对象对比器。

2022-08-25 15:24:54 301

原创 SpringBoot 配置 okhttp3

okhttp3

2022-06-19 11:16:53 1963

原创 springboot在项目启动之后执行特定任务的实现方式

文章目录场景解决场景项目经常需要在启动之后完成一些初始化的工作,在整个项目周期只执行一次解决通过监听ApplicationReadyEvent事件实现实现CommandLineRunner接口, 在项目启动之后执行run方法,并传递用于启动应用程序的命令行参数 具体操作如下@Component 注册为bean@Order控制启动顺序,但是不建议使用,顺序意味着有前后依赖,不安全run方法有抛出异常,Spring Boot 会将 CommandLineRunner 作为应用启

2022-05-14 22:24:14 876 1

原创 springboot项目实现事件的监听

文章目录场景解决涉及到的技术点事件监听的实现方式场景微服务在项目启动的时候 需要将自身的一些信息(比如:ip port)注册到管理项目中,方便管理者做请求分发, 那么这就需要捕捉到项目启动事件,项目关闭事件 已完成项目的注册,以及删除; 虽然注册中心可以完成这种功能,但是注册中心做不到精细化的控制。解决项目启动事件捕捉可以依赖ApplicationReadyEvent事件, 下面是测试代码@Slf4j@Componentpublic class ApplicationReady

2022-05-08 12:32:30 662

原创 springboot快速的获取bean

文章目录背景实现为什么不直接通过 @Autowired引入ApplicationContext呢?背景bean注册容器中,但是实际项目中是经常要在service中使用这些bean的,这时候就需要快速的获取bean实现定义工具类SpringUtils实现ApplicationContextAware接口, 该接口只有一个setApplicationContext方法,通过入参可以完成bean的获取SpringUtils添加@Component 交给springboot管理public

2022-05-02 16:36:00 294

原创 springboot生产项目中线程池的使用

文章目录背景分析技术点解决背景淘宝代打代发项目订单处理流程是这样子的: 通过订单列表接口获取订单号,通过订单详情接口获取商品信息一个线程中轮训订单详情接口的效率是非常低的,所以需要在多线程中请求订单详情。项目使用springboot开发分析实际项目中线程池的控制是需要统一控制的(如果每个团队成员可以随意的创建配置线程池,很快服务器的资源就会被耗尽了),然后按照模块设置线程池。因为要使用各个订单的商品信息,所以需要在主线程拿到子线程的运行结果,基于方便的考虑 所以多线程通过Comple

2022-05-01 23:24:52 701

原创 ThreadPoolExecutor线程池的创建

文章目录场景内容场景项目中需要设置公用线程池, 避免大家随意创建线程池造成虚耗资源内容 // 创建线程池。线程池的"最大池大小"和"核心池大小"都为1(THREADS_SIZE),"线程池"的阻塞队列容量为1(CAPACITY)。 ThreadPoolExecutor pool = new ThreadPoolExecutor( 1, 1, 0,

2022-04-28 15:40:26 2412

原创 idea 引入本地jar包的方式

文章目录场景解决场景对接淘宝的代打代发项目,需要进入淘宝的sdk,而开放平台没有提供maven库,所以需要需要将sdk从开平下载到本地之后导入到系统解决通过idea导入, 这种会编译失败: Caused by: java.lang.NoClassDefFoundError: com/taobao/api/response/DaifaSupplierOrderQueryResponse$DaifaScpOrderModel通过pom文件导入 <!--淘宝代打代

2022-04-21 15:11:19 3930 1

原创 switch使用枚举类的提示 constant expression required

文章目录场景解决场景接口状态字段响应是个字符串, 使用一个枚举值接受,但是switch的时候 提示: constant expression required解决switch转化成枚举值,然后比较枚举值转化成枚举值的方式可以自定义@Getter@AllArgsConstructorpublic enum TopDaiDaDistributeStatusEnum { DISTRIBUTE("DISTRIBUTE", "已分配"), CANCEL("CANCEL", "

2022-04-19 19:54:08 1181

原创 RestTemplate简单使用

文章目录场景场景//1. 简单Get请求String result = restTemplate.getForObject(rootUrl + "get1?para=my", String.class);System.out.println("简单Get请求:" + result);//2. 简单带路径变量参数Get请求result = restTemplate.getForObject(rootUrl + "get2/{1}", String.class, 239);System.out.

2022-04-14 14:23:10 205

原创 docker Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/

文章目录场景环境安装docker解决问题场景docker执行命令报错: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/环境ubuntu18.04安装dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun解决问题将当前用户加入docker组sudo g

2022-04-13 18:16:19 958

原创 rabbitmq User can only log in via localhost

文章目录场景解决场景ubuntu18.04使用guest登录rabbitmq管理界面报错 :{“error”:“not_authorised”,“reason”:“User can only log in via localhost”}解决guest是默认生成账号,不允许通过外网IP登录; 所以新建一个账号1. 添加用户 sudo rabbitmqctl add_user carsonlius password2. 设置管理员权限 sudo rabbitmqctl

2022-04-12 11:08:58 2181

原创 springboot动态切换多租户

文章目录场景pom配置创建2个演示的数据库3. 创建2个简单的接口3.1 用户列表接口3.2 商品列表接口4. 定义基本上数据类型BaseDto (用来标识卖家信息 生产环境可以使用token替代)创建切面实现原理场景租户多且不固定且多服务场景动态实现pom配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="

2022-04-06 18:20:31 1277

空空如也

Ubuntu 安装JRE出现的,怎么解决呢?

2015-10-07

gtk, GTK_TOGGLE-BUTTON(check_button)结构体,->疑问

2015-10-05

gtk_progress_bar_pulse,怎么用?

2015-10-04

gtk+环境出现下面错误提示,搜索了下,:notebook未实例化,怎么破?

2015-09-26

gtk+图形编程的时候出现的错误,怎么破?invalid cast

2015-09-24

linux gtk 里面的怎么将滚动条构建添加到viewport?

2015-09-18

linux gtk容器那么多结构体怎么去查看他们具体含有哪些成员呢?

2015-09-17

window不是一个结构体,也没有allow——shrink成员,why可以通过->引用

2015-09-15

linux gtk 比列框架标签的位置怎么修改不了?一直在初始位置

2015-09-15

linux 下图形界面编程gtk_layout_new()参数的设置是怎么发挥效用的呢?

2015-09-13

linux gtk函数 GtkLayout GtkFixed有什么区别呢?

2015-09-13

linux gtk gtk_widget_set_has_window有什么作用呢?

2015-09-12

ubuntu一般的函数可以终端man获取用法?gtk系列函数呢?

2015-09-08

ubuntu 终端password修改密码时,找不到password怎么搞的?怎么解决?

2015-09-08

ubuntu开机的时候遇到的,怎么选?为什么会出现?

2015-09-06

makefile,下面命令的-D $(date)表示什么意思呢?

2015-09-06

linux 简单makefile,foo=sort,在sort的函数中以$(foo)引用会失败?

2015-09-05

简单makefile,函数名以变量引用怎么就不行了呢?

2015-09-03

简单makefile,怎么查不到-lgnu,是不是说明我需要自己编写gnu库呢?

2015-09-03

ubuntu15.04作为过渡版本,会有什么问题呢?基本的功能,函数的正确性会又问题吗?

2015-09-03

怎么讲ubuntu15.04恢复到14.10版本?

2015-09-02

case,while,for shell脚本中经常可以看到read -p “ 提示符” 不接变量

2016-01-03

linux sort命令:诡异的组合,大佬给个解释呗,谢谢

2015-12-30

linux的虚拟硬盘可以随意的构建,换言之是不是可以在linux里面随意的下载存储视频呢?

2015-12-25

运维CentOS环境,traceroute命令

2015-12-25

centos运维,wget下载失败是什么问题呢?

2015-12-19

centos配置本地YUM时,将/dev/cdrom 挂载在/media/centOS下,

2015-12-18

linux,挂载自建的文件系统怎么没有什么变化?是不是进入挂载点就意味着切还了新的文件系统?

2015-12-17

我的linux(centos) 中挂载了多个文件系统怎么在他们中间切换呢?

2015-12-16

linux fdisk -lcu 查看磁盘有一句,怎么解释呢?

2015-12-15

(采用了虚拟机)ubuntu,升级到15.10后,

2015-11-15

linux 环境,tcgetsid(STDOUT_FILENO),返回error

2015-11-15

APUE(版3) 例8.28 会计进程,第31,32行怎么解释?

2015-11-13

apue第三版,例题敲在Ubuntu上面怎么无法运行它自带的函数?

2015-11-07

已经用了半年的ubuntu,今天重新登,居然在开机时,

2015-10-31

ubuntu登陆glade时,报错怎么个情况

2015-10-29

GTK,用到了GtkBuilder,在从GtkBuilder获取对象的时候,

2015-10-28

ubuntu eclipse 里面怎么缺少宏?怎么解决

2015-10-15

ubuntu 14.04 glade 联编,什么情况?

2015-10-11

linux 安装eclipse的安装,JRE出现错误,怎么破

2015-10-06

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

TA关注的人

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