自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 shiro导致返回的响应头中带有rememberMe = deleteMe,有时候顺序在SESSIONID之前

shiro返回的响应头带有rememberMe = deleteMe

2023-03-14 16:32:00 2583

原创 mysql递归查询省市区

mysql递归查询

2022-12-13 23:45:24 4726 1

原创 java随机获取数组下标index

java随机获取数组下标

2022-08-28 20:38:57 2617

原创 mysql timestamp类型格式转换

模板:使用DATE_FORMAT函数DATE_FORMAT(b.`create_time`,"%Y-%c-%s %H:%i")转载:https://www.cnblogs.com/jpfss/p/11125926.html

2022-04-01 15:36:02 1812

原创 解决前后端分离shiro跨域问题

问题描述在前后端分离整合shiro框架时,我发现shiro中的Subject主体只能在第一次访问时候拿到,甚至AuthenticationInfo认证完之后AuthorizationInfo授权不能通过原因分析:跨域时会先发送一个OPTIONS(预请求),这个预请求是不带AuthorizationInfo的,所以不能授权解决方案:public class MyHttpAuthenticationFilter extends BasicHttpAuthenticationFilter {

2022-03-31 14:49:39 1726

原创 @vue/cli 5.0.1脚手架报错 1:1 error Component name “XXXX“ should always be multi-word vue/multi-word-

报错:1:1 error Component name “Login” should always be multi-word vue/multi-word-component-names原因分析:是我们组件名不规范导致的,官方建议采用驼峰式命名解决方案1:组件使用驼峰命名解决方案2:关闭这个命名校验加上下图框中的配置即可const { defineConfig } = require('@vue/cli-service')module.exports = defineConfi

2022-03-04 21:52:57 1978 3

原创 io.seata.common.exception.FrameworkException: register error,role:TMROLE,err:cost 30010 ms

项目场景:整合seata时候出现这个错误问题描述:整合seata之后,OpenFeign超时了,把超时的值设置的大一点就好了feign: hystrix: enabled: false client: config: default: connect-timeout: 300000 read-timeout: 300000...

2021-12-17 02:36:06 2689 1

原创 Sentinel整合OpenFeign降级熔断

服务提供者:application.ymlserver: port: 9003spring: application: name: nacos-payment-provider cloud: nacos: discovery: server-addr: localhost:8848 #配置Nacos地址management: endpoints: web: exposure: include: '*'

2021-12-10 16:32:25 1243 1

原创 Sentinel降级和熔断配置

源码:@RestController@Slf4jpublic class CircleBreakerController{ public static final String SERVICE_URL = "http://nacos-payment-provider"; @Resource private RestTemplate restTemplate; @RequestMapping("/consumer/fallback/{id}") @Senti

2021-12-10 02:18:01 884 1

原创 Sentinel熔断自定义回调方法

源码:@GetMapping("/rateLimit/customerBlockHandler") @SentinelResource(value = "customerBlockHandler", blockHandlerClass = CustomerBlockHandler.class, blockHandler = "handleException2") public CommonResult customerBlockHandler

2021-12-10 00:18:41 615

原创 Sentinel热点参数限流的配置

源码:Sentinel根据SentinelResource注解中的value进行绑定,限流时调用SentinelResource注解中的blockHandler方法Sentinel控制台:资源名填写的是SentinelResource注解中的value参数索引0就代表方法中第一个参数参数例外项可以根据不同的参数值进行不同的限流方案图中可以看出我们对第一个参数进行限流,限流数是1。当参数值为1时,限流数为800。当参数值为5时,限流数为200...

2021-12-08 11:31:40 671

原创 关于idea debug只能进入一次的问题

问题描述:在修改bug的时候,我发现我的debug之能进入一次,每一次都需要重新跑代码才可以重新进入debug,这非常的浪费时间!``原因分析:debug时候不可以手动点击这个图标,如果点击这个图标后面的debug将不在进入解决方案:用F9快捷键代替即可...

2021-10-12 10:52:46 2383 1

原创 关于select根据el表达式判断默认选中的方法

项目场景:需要根据后端传过来的数据进行默认选中的功能解决方案:<select name="carId"> <c:forEach items="${carMessAll}" var="carMess"> <option value="${carMess.id}" ${carMess.id eq carId ? 'selected':''}>${carMess.plateNumber}</option> </c:forEach> &

2021-10-11 15:32:14 538

原创 关于idea经常卡顿的解决方法

问题描述:新买了电脑,内存32g,cpu是AMD7,使用idea2019的时候会卡顿,我翻遍了网上大部分的帖子,基本上都是叫修改idea里的idea.exe.vmoptions文件,实际上我修改过后是没用的,还是一样的卡,而且卡的很有规律,就是在编辑html的时候才卡,我在控制层写java代码的时候是不卡的。原因分析:所以我认为是有html校验或者是什么提示文本导致了卡顿,我就把html校验和文本提示一个个进行修改对比卡顿程度,终于找到了真正卡顿的原因!解决方案:1.取消掉以下图片的选项2.对

2021-10-02 14:36:38 30592 20

原创 关于Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name

项目场景:启动项目时报错:Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘dataSource’ defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of ini

2021-09-17 16:16:36 1009

原创 layui关于table.render传数据问题

项目场景:现在我有一个需求是需要从table.render中的表格里获取数据在区域中进行逻辑判断,此时我就需要从table.rander中获取数据解决方案:解决思路:https://www.layui.com/doc/modules/table.html#ontool这是我在官网找到的方法,具体的意思就是:d是table.render中封装好的一整行的数据获取数据格式: {{# if(d.createUserId == '${taskUserId}'){ }} xxxxxxxxxx

2021-09-17 10:24:03 2347

原创 关于@RunWith(SpringRunner.class)中SpringRunner.class报红的问题

原因分析:依赖包没导入解决方案:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.24.RELEASE</version></dependency><dependency> <groupId>j

2021-09-05 19:41:03 1440

原创 关于搭建rabbitmq集群报错Error: unable to perform an operation on node ‘rabbit@localhost‘. Please see diagnos

项目场景:搭建rabbitmq集群时mq1为主,mq2,mq3为从mq2和mq3加入集群时输入命令:rabbitmqctl join_cluster rabbit@mq1报错问题描述:具体报错为:Error: unable to perform an operation on node ‘rabbit@localhost’. Please see diagnostics information and suggestions below.Most common reasons for this

2021-08-02 12:27:12 10647 2

原创 关于RabbitMq中Work queues(工作队列)模型,消费者处理速度不一致进行消息的分配

问题场景:当我们使用work queues队列时,默认是轮询消费,此时如果消费者的处理速度不一致(消费者A慢,消费者B快),则会发生消费者B消费完消息后,一直等待着消费者A消费结束,这样比较浪费资源,所以我们需要根据消费者处理速度不同来分配队列中的消息解决思路:1.设置每次消费者获取的消息条数为1。2.设置消费者消息手动确认分析思路:1.第一点其实很好理解,如果生产者生产了10条消息,如果不设置消费者每次消费数为1,则在消费队列中的消息前,就会进行平均的...

2021-07-16 22:42:22 410 2

原创 快速实现RabbitMq中fanout(广播)模型

模型结构消息发送流程1.生产者把消息发送给交换机2.交换机把消息发送给每个绑定的临时队列3.消费者通过队列消费消息(每一个消费者都绑定一个临时队列)引入依赖<!-- 引入rabbitmq依赖--> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactI...

2021-07-15 17:24:56 277

原创 关于linux启动rabbitmq报错:Job for rabbitmq-server.service failed. See ‘systemctl status rabbitmq-server.se

此时我凭着这个错误信息,试过了网上所有的方法,结果还是没有成功,这时我就只能去查找日志,看看能不能找出什么错误(如下图)问题描述:此时我终于明白了,是erlang没有安装成功,我又把我安装的全部卸载了,重新安装了一边,结果完美启动linux卸载rabbitMQ方法原因分析:rabbitMQ是erlang写的,所以要运行的时候要把erlang的环境给搭好...

2021-06-19 16:55:24 1329 3

原创 关于layui关闭自身iframe弹窗

方法:var index = parent.layer.getFrameIndex(window.name);parent.layer.close(index);直接在弹窗的页面方法里写入这两句即可

2021-06-09 23:34:59 270 3

原创 thymeleaf访问request,session,servletContext

方法为:引入标签库后 <spen th:text="${#servletContext.getAttribute('user')}"></spen> <spen th:text="${#session.getAttribute('user')}"></spen> <spen th:text="${#request.getAttribute('user')}"></spen>...

2021-06-03 22:38:24 391

原创 org.apache.shiro.authc.SimpleAuthenticationInfo cannot be cast to org.apache.shiro.authz.Authorizati

项目场景:SpringBoot集成shiro-redis遇到的报错:org.apache.shiro.authc.SimpleAuthenticationInfo cannot be cast to org.apache.shiro.authz.AuthorizationInfo类型转换异常原因分析:字面意思已经很明白了,就是认证的类和授权的类发生了相互转换,所以报错,那为什么会发生认证和授权发生相互转换呢?解决方案:提示:这里填写该问题的具体解决方案:例如:新建一个 Message 对象,

2021-05-13 12:30:46 1385 2

原创 Shiro中@RequiresRoles和@RequiresPermissions的使用

@RequiresRoles("user") //具有user角色可以访问@RequiresRoles(value = {"admin","user"},logical = Logical.AND)//用来判断是否拥有角色 同时具有admin 和 user角色才能访问@RequiresRoles(value = {"admin","user"},logical = Logical.OR)//用来判断是否拥有角色 具有admin 或 user其中一角色才能访问@RequiresPermiss

2021-05-10 12:55:12 4796

原创 mybatis中useGeneratedKeys和keyProperty的用法

使用场景:当我们从前端提交了一个User对象字段如下:此时要获取前端提交的user对象的id值,我们就要使用mybatis中的useGeneratedKeys和keyProperty属性useGeneratedKeys的作用是允许 JDBC 支持自动生成主键keyProperty对应的是Java对象的属性名(不是数据库中的字段名)<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="i

2021-05-09 11:15:34 955 1

原创 使用Shiro报错java.lang.IllegalStateException: Configuration error: No realms have been configured

问题描述:可能是没有安全管理器设置自定义realm解决方案:获取realm后,给安全管理器defaultWebSecurityManager设置realm defaultWebSecurityManager.setRealm(realm);

2021-05-08 23:05:25 437

原创 jsp页面中文乱码问题

解决方案:在jsp文件里的最上方添加以下代码即可<%@page contentType="text/html; UTF-8" pageEncoding="UTF-8" isELIgnored="false"%>

2021-05-08 18:14:24 58

原创 Shiro使用盐值+MD5密码加密

一、引入shiro依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.5.3</version> </dependency>二、创建自定义realmpackage org.example.realm;import o

2021-05-06 13:11:29 338

原创 关于idea运行springboot项目访问jsp页面的步骤

步骤:1.pom.xml文件导入以下依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId></dependency><dependency> <groupId>org.apache.tomcat.embed</grou

2021-05-03 22:14:13 1000

原创 redis template 模板

@Configurationpublic class RedisConfig { @Bean public RedisTemplate<String, Object> RedisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConn

2021-04-13 00:56:23 132

原创 关于Calendar类写入数据库datetime列

方法一:Calendar 转化成字符串填入数据库 Calendar c = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String dateStr = df.format(c.getTime()); String sql3 = "INSERT INTO t_order(car_id,user_id,start_time,price,days)

2021-04-08 13:37:46 436

原创 关于sql语句拼接字符串变量的操作

方法:使用sql语句拼接字符串变量时,如果使用简单的+则会使sql语句报错:此时我的version是字符串类型,大众途观是不带单引号或者双引号的,所以sql语句会报错找不到该列。所以我们要使用’"+“大众途观”+"'来拼接sql语句:此时我们的"大众途观"是带引号的,sql语句就不会报错了...

2021-04-05 19:28:11 1213

原创 Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/velocity/context/Contex

关于使用mybatis-plus代码生成器报错:Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/velocity/context/Contex报错原因:可能是你使用的MP版本太低了,我的是3.0.5的版本,缺少了org/apache/commons/lang/exception/NestableRuntimeException所以要手动添加这个依赖,而且还是版本低一点的,否则还是会报错解决方案:在pom.x

2021-04-05 12:27:08 7917 3

原创 mysql添加创建时间列和更新时间列

方案:有些数据库可视化软件是不能直接添加更新时间的,如下图这时我们只能用sql语句来添加该列(表名为user)添加创建时间列:ALTER TABLE `user` ADD COLUMN create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';添加更新时间列:ALTER TABLE `user` ADD COLUMN update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPD

2021-04-03 23:19:49 1681

原创 关于Mybatis-plus不能自动生成主键的原因

代码如图:此时我想插入一个user,但我没有填写id,运行时报错没有id解决方案:我观察我的id这个属性,是Integer类型的,这时候把Integer改成Long类型(是Long不是long)Mybatis-plus就可以自动生成id了修改如图:...

2021-04-03 19:53:07 1773 2

原创 Vue中最简便的父子组件之间通信方法

条件如下:在父组件中导入子组件调用子组件的值或者方法为:this.$refs.editor.xxxxxeditor是子组件的ref注册值例子:子组件中有value值和clear方法获取值为:this.$refs.editor.value调用方法为:this.$refs.editor.clear()...

2021-04-01 16:08:22 65

原创 关于npm install @tinymce/tinymce-vue -S报错的解决办法

报错如图:当我们想使用vue封装tinymce富文本编辑器时,cmd输入npm install @tinymce/tinymce-vue -S报错:报错原因:报错的原因是下载版本与vue的版本对不上vue2.0版本应该使用npm install --save "@tinymce/tinymce-vue@^3"vue3.0版本应该使用npm install --save "@tinymce/tinymce-vue@^4"我的是2.0版本,此时我输入第一条命令就能成功的安装更详细的在

2021-03-31 16:41:51 8059

原创 Vue关于this.$http.put传不了带参url的问题

使用put传入带参url传不到后端:如下图const {data:res} = await this.$http.put("updatestate?id=${userInfo.id}&state=${userInfo.state}");做以下修改:把双引号或者单引号换成 `(间隔号)即可(请细致观察我下图中圈的符号)const {data:res} = await this.$http.put(`updatestate?id=${userInfo.id}&state=$

2021-03-26 13:59:39 1209

原创 关于Nginx基于域名配置虚拟主机操作(通俗易懂)

下图是已经配好的nginx.conf配置文件此时我们只需要知道listen是监听端口server_name是域名location里的proxy_pass是你再跑项目的端口号剩下的直接照着填写上去就可以了这是一个server的模板,复制粘贴即可,修改listen,server_nameproxy_pass至自己虚拟机相关的参数即可 server{ listen 80; server_name www.nnxy.org; location /

2021-03-20 09:10:13 118

空空如也

空空如也

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

TA关注的人

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