自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用umi中的useRequest函数获取返回值中的data为空的问题

umi是一个react脚手架,最近有一个功能,需要在组件第一次渲染前请求一次,后面组件重新渲染不需要再次发送请求。要实现这种功能,我决定使用umi里面的一个hook函数,即useRequest。后来经过反复尝试,发现useRequest函数传入的第一个参数必须是一个异步函数,并且这个异步函数的返回值必须是一个包含data属性的对象,否则封装后的响应数据就获取不到。结果发现,categorys值始终为undefined,也就是说,useRequest返回对象的data属性始终为undefined。

2023-12-30 16:25:14 647

原创 使用cmake构建Qt6.6的qt quick项目,添加应用程序图标的方法

最近,在学习qt的过程中,遇到了一个难题,不知道如何给应用程序添加图标,按照网上的方法也没有成功,后来终于自己摸索出了一个方法。其中/logo.ico代表图标的相对路径,然后另存为logo.rc文件,删除原文件,如下图所示。3、在Qt Creator里面添加logo.rc和logo.ico文件到项目当中,如图所示。1、准备一张图片作为图标,保存到工程目录下面,如logo.ico。2、使用记事本在工程目录下创建logo.txt文件,输入如下内容。其中,logo.rc就是前面创建的文件,用于配置应用图标。

2023-12-09 20:38:46 545 1

原创 使用ant design pro出现面包屑导航和标题消失的问题

后来,我把这个项目模板用于另外一个项目的前端页面,把整个项目的文件夹复制过去,进行修改,运行以后发现,面包屑导航和标题都消失了,但原来的项目模板是可以显示面包屑导航和标题的。然后,我换了一种方式,使用git从码云上面拉取项目源码,再用npm install下载依赖包,运行以后发现,面包屑导航和标题又出现了,不知道具体原因究竟是什么。前端时间,我用ant design pro搭建了一个后台权限管理的项目模板,里面用到了PageContainer组件,默认会显示面包屑导航和标题,如图所示。

2023-11-01 11:35:40 591 1

原创 form-create-designer整合element-plus使用方法

最近在使用form-create-designer生成表单的时候遇到了很多问题和各种报错,按照官方文档的方法一步步来做,发现行不通,后来经过不断尝试,终于找到了使用方法,这里做一下总结。

2023-08-08 17:44:51 856 1

原创 springboot2.7.6与springsecurity和JWT整合方案

新版本的springsecurity与旧版本的使用方法有点不一样,最近探索了一下springsecurity与JWT的整合方案,进行一下总结。

2023-07-25 12:51:17 682 2

原创 springboot配置文件添加自定义配置报错解决方案

前段时间,我在springboot项目的application.yml文件里面添加了一段自定义配置,结果变成了红字,意味着报错,看着很不爽,所以在网上寻找解决方案,终于找到了一个方法。2、然后,在这个文件夹下新建一个配置文件,additional-spring-configuration-metadata.json。其中,name是自定义配置的名称,type是数据类型,description是配置的描述信息。1、首先,在resources文件夹下面新建一个文件夹,META-INF。

2023-07-20 18:15:01 284

原创 分享一个MySQL存储过程

这个案例中,就是将t_menu_btn_authority表的数据查出来,然后循环遍历游标,保存到t_menu_btn_authority_1表里面。前端时间,写了一个MySQL存储过程,用来同步表数据,可以作为参考。

2023-04-11 21:28:10 61 1

原创 springboot2.7.6整合springsecurity相关配置

这里面的逻辑是,获取当前已认证的用户信息,保存在securityUser对象里面。其中,filterChain方法里面定义了最核心的配置信息,包括登录接口的请求路径,用户名、密码的参数名,登录成功的处理类的对象,登录失败的处理类对象,退出的接口路径,退出时删除cookie,退出的处理类对象,还包括处理跨域的配置等。这里面的逻辑就是,根据用户名查询用户信息,如果结果为空,就抛异常,如果不为空,就把用户信息保存到securityUser里面,并返回这个对象。登录的时候,会调用这个方法。2、这是核心配置方法。

2023-01-30 15:01:56 1892

原创 Java抛出自定义异常,报java.lang.reflect.UndeclaredThrowableException: null的错误

结果运行后,报java.lang.reflect.UndeclaredThrowableException: null,而且前端并没有显示对应的异常内容。需要继承RuntimeException,不要继承Exception,即可。最近项目中使用了自定义异常,并做了全局异常处理,抛出异常的代码如下。后来发现,问题出在FebsException这个自定义异常类上。这样,项目就能正常运行,前端也能显示对应的异常内容。

2022-10-13 10:27:55 6519

原创 Java使用KeyStore存储AES对称加密的密钥

其中,KeyStore的类型必须设置JCEKS,否则保存SecretKey这种对称加密的密钥会报错。KeyStore类是Java当中的密钥库,专门用于存储密钥,以下代码用于生成keystore文件。

2022-09-20 14:44:53 1580

原创 Linux常用命令总结

2、根据进程号查看某个进程的安装路径。1、查看某个端口被哪个进程占用。

2022-09-01 09:06:59 238

原创 Linux中springboot项目在后台启动,并加载外部配置文件命令

其中,./config/application.yml是外部配置文件的路径,log.log是日志文件。

2022-08-30 16:51:43 1299

原创 使用docker容器搭建redis集群(三主三从)

增加如上所示配置,给每个redis节点设置不同的端口号,复制并创建6个配置文件。因为docker是以host模式启动,所以要防止端口冲突。这里挂载了redis的配置文件,并且以host网络模式启动容器,给每个容器挂载不同的配置文件,以此类推,共启动6个容器。4、使用redis-cli执行cluster info和cluster nodes查看集群信息。搭建集群,其中192.168.182.128是宿主机的ip地址。3、进入其中一个容器内部,执行如下命令。1、修改redis的配置文件。......

2022-08-14 18:10:50 608

原创 使用shardingjdbc实现读写分离配置

基于MySQL主从复制实现,其中m0是mysql的主库数据源,s0是mysql的从库数据源,具体配置一定要根据shardingjdbc的版本来写,不同的版本差异很大,查看官方文档一旦选错了版本,运行出现问题,很难发现错在哪里,浪费了很多时间!...

2022-08-03 22:08:23 466

原创 使用docker容器搭建MySQL主从复制

注意,mysql的配置文件开头要加上[mysqld],我就是一开始没加这个东西导致配置怎么改都不生效,浪费了很多时间。重启容器,使配置生效。其中,master_log_file和master_log_pos分别对应上图中的File和Position。3、在/root/docker/mysql/master下创建主节点的配置文件mysql.cnf。4、在/root/docker/mysql/slave下创建从节点的配置文件mysql.cnf。尝试向主节点的表中添加记录,会自动复制到从节点上。...

2022-07-31 00:13:58 247

原创 docker容器不能远程访问的原因

今天在虚拟机里面启动了一个mysql的docker容器,发现在宿主机连接不上,只有进入容器内部才能对它进行访问,网上百度了半天,尝试各种方法都不管用,干脆死马当活马医,重启一下docker引擎试试看,使用如下命令。然后,重启容器,发现竟然可以连接上了,害我浪费了那么多时间,唉!...

2022-07-30 16:09:56 715 2

原创 shardingjdbc水平分库分表配置以及垂直分库配置

值得注意的是,使用druid连接池,连接字符串属性用url,而使用hikari连接池,连接字符串属性要用jdbc-url。2、springboot配置文件如下。

2022-07-20 22:40:09 438

原创 kafka eagle(EFAK)使用中所遇到的坑

1、从官网下载kafka eagle2.1.0,解压后得到如下目录,2、添加环境变量3、进入conf目录,修改system-config.properties文件。因为当前只有一个kafka服务器,所以设置efak.zk.cluster.alias=cluster1,就可以了。修改zookeeper的访问配置cluster1.zk.list=localhost:2181。注释cluster2和cluster3的所有相关配置。配置文件中默认使用mysql保存数据,相关配置如下结果在mysql中创建了

2022-06-04 10:54:43 3434

原创 windows下Kafka的安装配置总结

1、从官网下载kafka,解压后得到如下目录2、进入config目录,修改zookeeper.properties配置文件,设置dataDir=…/…/zk-data,zookeeper启动后会自动创建zk-data文件夹,保存所需数据。确认zookeeper的端口号配置,clientPort=2181。3、修改server.properties文件,设置advertised.listeners=PLAINTEXT://localhost:9092,在生产环境中,localhost改成服务器所在的ip地址

2022-06-04 10:10:01 866 1

原创 补充一条MySql中的sql语句,用于批量插入和更新

MyBatis中的配置文件如下<insert id="insertOrUpdateBatch"> insert into aishu_job(job_id,job_type,job_name,job_desc,client_name,client_ip) values <foreach collection="list" item="job" separator=","> (#{job.jobId},#{job.jobType},#{job.jobN

2022-05-27 10:51:26 363

原创 使用MongoDB导入Json字符串,插入文档

代码如下:String uri = "mongodb://localhost:27017";try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("testdb"); MongoCollection<JsonObject> collection = database.getCollection("test", Jso

2022-05-19 14:02:57 888

原创 解决OpenFeign远程调用需要传递请求头的问题

这里需要配置一个Bean,代码如下@Configurationpublic class FeignConfiguration { /** * feign拦截器,设置cookie请求头 * @return */ @Bean public RequestInterceptor requestInterceptor(){ return new RequestInterceptor() { @Override

2022-05-04 15:00:07 1940

原创 补充一个md5加密的方法

所需依赖如下<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version></dep

2022-04-06 22:58:46 306

原创 Java调用webservice服务接口步骤详解

1、使用如下命令,生成webservice的Java客户端文件wsimport -s 文件目录 -p 包名 -keep wsdl发布地址生成的文件如下然后,将这些文件复制到工程目录下。2、执行如下代码,就可以调用webservice接口,得到响应数据WsSmsService smsService=new WsSmsServiceService().getWsSmsServicePort();String resXml = smsService.sendSms(xml);其中,xml是传入

2022-04-06 22:51:55 2664

原创 使用RestTemplate获取响应头中的cookie,并在请求头加上cookie

最近在做一个项目,需要使用RestTemplate发送请求,做一次远程登录,需要拿到登录后的cookie,然后加到请求头上面,再次获取数据,代码如下Map<String,Object> params=new HashMap<>();params.put("username",username);params.put("password",password);ResponseEntity<String> entity = restTemplate.postForEn

2022-03-20 21:44:22 9618 1

原创 springsecurity与gateway网关整合配置

本项目的登录认证和鉴权功能在不同的服务器模块里面运行,其中登录认证功能在内部的应用服务器里面实现,鉴权功能在网关实现,这里着重讲springsecurity在gateway网关里面的鉴权功能的配置。1、核心配置类如下@EnableWebFluxSecuritypublic class SecurityWebfluxConfig { @Bean SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity htt

2022-03-12 23:35:49 7744

原创 springsecurity使用自定义登录过滤器实现并发session

springsecurity中的相关配置如下@Overrideprotected void configure(HttpSecurity http) throws Exception { http.exceptionHandling() .authenticationEntryPoint(new UnauthorizedEntryPoint()) .and().csrf().disable() .authorizeReque

2022-03-11 14:38:08 970

原创 springsession使用请求头获取sessionid,得到session对象

如果客户端是手机app,非浏览器,就不能通过cookie来访问session对象,因此需要在登录成功后,将sessionid添加到响应数据中,下次用户访问,就在请求头当中带上sessionid,后端通过从请求头获取sessionid,得到session对象。springsecurity中的相关配置如下@Beanpublic HttpSessionIdResolver sessionIdResolver(){ return new HeaderHttpSessionIdResolver("Auth

2022-03-11 14:12:00 2517

原创 springdata redis配置序列化

其中,key使用string序列化,value使用json序列化。今天总结了一下redis配置序列化的方法,代码如下。

2022-03-09 22:22:49 1106

原创 JasperReport生成PDF报表小节

1、使用Jaspersoft Studio制作PDF模板,生成一个jrxml文件。2、编译jrxml文件,生成jasper文件,然后复制到springboot工程中的resources目录下。3、引入所需依赖<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>

2022-02-28 11:19:53 1227

原创 SpringSecurity用法详解,解决maximumSessions(1)不生效的问题

1、定义核心配置类,使用如下注解@Configuration@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled = true)public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter在配置类中注入所需属性@Autowiredprivate UserDetailsService userDetailsService;@Autowire

2022-02-07 17:25:44 4224 2

原创 实现单点登录的2种方式

最近在思考关于单点登录和认证授权方面的问题,总结了单点登录的2种方式。1、基于session和redis实现这种方式适用于PC端和移动端网页的服务器接口。首先,后端拿到前台传过来的用户名、密码,然后查询数据库,进行校验。校验通过后,将用户的个人信息包括用户权限保存到session里面,再将session存到redis里面。下次前端发请求,就从session里面取出用户信息,包括用户的权限,然后做授权。如果session当中没有用户信息,说明没登录,就向前端发送未登录的信息。2、基于JWT和redi

2022-02-02 14:00:33 1682

原创 使用拦截器和JWT实现Java后端接口的权限访问控制

最近发现,后端接口的权限访问控制通过使用springmvc里面的拦截器,就能够实现,方法比较简单,这里做一些总结。1、在登录接口查询数据库中的用户信息和权限信息,得到当前用户相关的权限,然后把权限信息添加到JWT的字符串里面,经过加密以后生成token,将token作为响应数据,传递给前端。2、定义一个拦截器,从请求头当中取出token,对token进行解密,得到里面的权限信息,然后获取当前访问接口的名称,与token中的权限信息进行比对,如果用户拥有当前接口的权限,就允许访问,否则就抛异常,代码如下

2022-01-30 16:08:16 4454

原创 Vue自定义指令获取不到参数的原因

最近在学习前端的权限管理,需要根据用户的权限对按钮进行显示和隐藏,用到了vue中的自定义指令。首先,在permission.js中定义如下函数// 检查是否有权限点export function hasPermissionPoint(point) { let points = store.getters.roles.points if (points) { return points.some(it => it.toLowerCase() === point.toLowerCas

2022-01-28 23:34:26 2360 1

原创 npm install安装前端依赖,报缺少python环境的解决方法

今天使用npm install命令安装一个前端项目的依赖库,发现报错,提示缺少python环境。我根据网上的提示安装了python环境,结果运行npm install依然报同样的错误。后来发现是项目中的node-sass的版本号太旧了,修改项目中的package.json文件,把node-sass的版本号改成最新的即可。...

2022-01-21 17:35:14 5198 1

原创 创建docker容器的命令总结

1、创建mysql的docker容器docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=密码 mysql:latest2、创建nginx的docker容器docker run --name nginx -v /root/data/nginx/html:/usr/share/nginx/html -v /root/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -p 80:80

2022-01-13 10:17:02 1315

原创 如何修改docker容器中的时区

1、首先,进入容器内部docker exec -it 容器id /bin/bash2、在容器内新建一个文件夹mkdir -p /usr/share/zoneinfo/Asia3、回到宿主机,复制宿主机的文件到容器中exitdocker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia4、进入容器,建立软链接ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc

2022-01-12 11:57:49 271 1

原创 RocketMQ在windows下的启动命令

进入rocketmq的安装目录,输入如下命令,启动nameserver.\bin\mqnamesrv.cmd启动broker.\bin\mqbroker.cmd -c .\conf\broker.conf -n localhost:9876 autoCreateTopicEnable=true这里要注意-c参数,如果配置了broker.conf文件需要指定-c参数,才会去加载配置文件,否则配置不会生效。...

2021-12-18 15:28:21 2853

原创 在springboot中使用websocket

1、添加如下依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>

2021-12-16 10:52:09 1523

原创 SpringCache整合redis和Springboot的使用方法

1、引入以下依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId&g

2021-12-10 16:59:48 772

空空如也

空空如也

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

TA关注的人

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