
java踩坑系列
废柴程序员
谨言慎行 戒急用忍
展开
-
使用vue-wxlogin组件做的微信登录,今天突然出现扫码后不跳转,控制台报错。
使用vue-wxlogin组件做的微信登录,昨天还好好地,今天早上发现,扫码后不跳转,控制台报错Uncaught DOMException: Failed to read the ‘cookie’ property from ‘Document’: The document is sandboxed and lacks the ‘allow-same-origin’ flag.原创 2024-04-26 11:30:17 · 1274 阅读 · 5 评论 -
解决JSONP请求无法携带cookie的问题方法
最近在做一个sso的统一认证登录系统,在调用系统校验登录接口时无法携带sso系统域下的cookie,导致请求一直为未登录状态,查了很多资料,都不好使,最终发现是cookie属的问题。原创 2023-03-29 17:20:19 · 1029 阅读 · 1 评论 -
解决SpringBoot 2.6.x版本中Swagger不可用的问题
在Swagger的配置类中添加如下Bean可以解决该问题:@Configurationpublic class Swagger2Config { @Bean public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { return new BeanPostProcessor() { @Override public Object postProcessAft原创 2022-04-15 15:27:20 · 1405 阅读 · 1 评论 -
solr5.5.3版本写入索引异常:“this indexschema is not mutable“
在solrconfig.xml中删除如下配置:原因是不允许手动添加field<processor class="solr.AddSchemaFieldsUpdateProcessorFactory"> <str name="defaultFieldType">strings</str> <lst name="typeMapping"> <str name="valueClass">java.lang.Boo原创 2022-03-21 11:09:34 · 397 阅读 · 0 评论 -
Swagger报错TypeError: Failed to fetch解决方案
场景描述最近部署一个项目,由于兼容IE8需要将前后台部署到一个站点下,nginx配置如下:server { listen 80; server_name www.aaa.ink; client_max_body_size 1000M; client_body_timeout 20s; client_header_timeout 10s; send_timeout 30s; ssl_protocols TLSv1.2; charset utf-8; #后端原创 2021-10-20 15:31:41 · 23517 阅读 · 1 评论 -
Nginx捕获404错误实现自定义处理方式
需求背景最近项目在做架构升级,由原来的SSM的单体架构变成前后端分离的项目,原项目使用了大量的动态路由,由于时间原因,我们不能使用VUE等支持动态路由的技术,这就导致之前大量的路径会改变。由于一些页面被做成了二维码,印刷在了纸质文件中。所以这部分功能只能保持原来的路径可以正常访问。解决思路新项目的前端是部署在Nginx中的,原有的动态路由继续访问会显示404错误,我们需要通过nginx捕获404错误,将错误的路由变成参数,发送到后台,按照相应规则处理,重定向到对应的页面即可Nginx对应配置htt原创 2021-01-12 19:08:01 · 832 阅读 · 1 评论 -
java对象在内存中占几个字节
java中可以使用jol-core工具查看对象内存布局,以下代码均在64位Hotspot虚拟机中实现。引入:<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.14</version> <scope>provided</scope></depend.原创 2020-10-15 11:29:17 · 484 阅读 · 0 评论 -
java类方法加载优先级
示例代码:class TestJz{ public TestJz() { System.out.println("构造函数!"); } { System.out.println("构造块"); } static { System.out.println("静态代码块"); }}public class Test { public Test() { System.out.println("Test构造函数!"); } { System.out.println("Te原创 2020-10-15 10:16:53 · 846 阅读 · 0 评论 -
java引用类型:强引用、软引用、弱引用和虚引用
1.强引用(StrongReference)java中的引用有点像C++中的指针。通过引用可以对堆中的对象进行操作。在某个函数中,当创建了一个对象,该对象被分配在堆中,通过这个对象的引用才能对这个对象进行操作。StringBuffer str = new StringBuffer("hello word!");假设上述代码在函数体内运行,那么局部变量str将被分配在栈上,而对象StringBuffer 实例,被分配在堆上。局部变量str指向StringBuffer 实例所在的堆空间,通过str可以操原创 2020-10-14 10:36:20 · 123 阅读 · 0 评论 -
java接口的抽象方法和静态方法
前言在JDK1.8以前,接口(interface)没有提供任何具体的实现,在《JAVA编程思想》中是这样描述的:“interface这个关键字产生了一个完全抽象的类,它根本就没有提供任何具体的实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供任何具体实现”。但是这一限制在JDK1.8中被打破了,JDK1.8开始,接口允许定义默认方法和静态方法。代码示例定义一个IHello 接口public interface IHello { //抽象方法 voi原创 2020-09-24 09:33:24 · 799 阅读 · 0 评论 -
java枚举类的使用笔记
定义基础规则抽象类/** * 通用规则抽象类 */public abstract class GeneralChannelRule { /** * 通用规则抽象方法 */ public abstract void process();}定义具体规则类1.Aa规则(继承基础规则抽象类)public class AaChannelRule extends GeneralChannelRule { //重写抽象方法 @Override public void process原创 2020-09-23 14:31:36 · 125 阅读 · 0 评论 -
java虚拟机(JVM)堆、栈、方法区、类加载器的详解
1.JVM的基本结构图由上图可知JVM基本结构包括:类加载子系统、内存区、执行引擎、本地库接口 。2.JVM的各区域详解图通过该图,我们对jvm会有一些基础的认识,下面我们详细讲解一下各区域。3.JVM运行时数据区各区域详解3.1程序计数器(Program Counter (PC) Register)内存空间小,线程私有。字节码解释器的工作就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。如果线程正在执行一个原创 2020-09-10 15:30:44 · 364 阅读 · 0 评论 -
Spring的Controller怎样保证线程安全
问题分析我们先来看下面的代码,判断一下两个接口请求的值分别多少。import com.sun.proxy.model.system.OptResult;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestC原创 2020-08-05 22:02:57 · 1770 阅读 · 0 评论 -
Redis设置过期时间注意事项
前言用过Redis的应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除。但是有时候我们会发现有些设置过过期时间的key并没有在我们设置的时间点失效。这里我们来详细聊一下有关过期时间的问题。设置过期时间需要注意的事项1、 DEL/SET/GETSET等命令会清除过期时间在使用DEL、SET、GETSET等会覆盖key对应value的命令操作一个设置了过期时间的key的时候,会导致对应的key的过期时间被清除。//设置mykey的过期时间为500s原创 2020-08-04 21:14:08 · 1654 阅读 · 1 评论 -
@Transactional注解自调用失效问题详解
问题描述有时候我们在接口方法中配置了@Transactional的注解,但实际使用时却遇到@Transactional注解失效的问题,我们在这里选取一个比较隐秘的细节问题来剖析失效问题。问题原因分析注解@Transactional的底层实现是Spring AOP技术,而Spring AOP技术使用的是动态代理,这就意味着对于静态(static)方法和非public方法,注解@Transactional是失效的。还有一个更为隐秘的,而且在使用过程中极其容易犯错的——自调用。所谓自调用就是一个类的一个方原创 2020-07-28 10:31:16 · 4616 阅读 · 1 评论