- 博客(105)
- 资源 (5)
- 收藏
- 关注
原创 spring事务的传播
Spring 事务的传播行为(Propagation)定义了在嵌套事务的情况下,当前方法的事务如何影响外部事务或被外部事务影响。不同的传播级别影响方法之间的事务关系,开发时应结合业务需求选择合适的传播方式。NOT_SUPPORTED 挂起当前事务,以非事务方式运行。REQUIRED (默认) 有事务就加入,没有就新建。REQUIRES_NEW 总是新建事务,原事务挂起。SUPPORTS 有事务就加入,没有就无事务运行。NESTED 有事务则创建嵌套事务,否则新建。NEVER 不能有事务,否则抛异常。
2025-02-18 10:30:51
375
原创 MySQL主要使用的几种索引算法
Hash 索引 Memory、InnoDB(自适应) 精确匹配(=)查询 查询速度快(O(1)) 不支持范围查询、排序、模糊查询。• 适用存储引擎:Memory(Heap)引擎、InnoDB(Adaptive Hash Index,自动优化的哈希索引)• 存储结构:R-Tree(多维索引结构),适用于存储和查询地理坐标(点、矩形、多边形)• 适用于 范围查询(BETWEEN、>、< 等)和排序查询(ORDER BY)• 适用于 等值查询(=),速度比 B+Tree 更快(O(1) 时间复杂度)
2025-02-06 19:23:34
456
原创 npm下载与卸载
完成以上步骤后,你的 Node.js 和 NPM 应该已卸载干净并重新安装成功,同时配置好了适合的环境!在 Windows 上,以下是卸载并重新安装 Node.js 的步骤,同时配置好 NPM。如果显示 “command not found” 或 “未找到命令”,表示已成功卸载。如果需要修改全局安装目录,可以运行以下命令(例如,将其设置为用户目录的。测试 NPM 是否正常工作,尝试全局安装一个包,例如。如果返回版本号,说明 NPM 配置正常。
2025-01-08 20:28:15
3038
1
原创 failed to resolve sdk 的解决方法
这样,IDEA 启动项目时会使用 JDK 17,而不会影响其他项目或全局环境变量。如果你需要通过命令行启动项目,可以在运行时指定 JDK,而不依赖全局配置。在 IDEA 中可以为每个项目单独指定 JDK,无需更改系统的全局配置。JEnv 会根据当前目录自动应用对应的 JDK,而不会影响全局环境变量。这些方法都可以避免修改系统的全局环境变量,同时灵活切换 JDK 版本。这种方法只在当前终端会话中有效,关闭终端后不会影响全局配置。如果经常切换 JDK,可以考虑使用。工具来管理多个 JDK。,而不修改全局变量。
2025-01-06 14:29:47
593
原创 2024年面试记录
答:我这边经过redis实际上就是完成了下单了,后续对db的操作交给rabbitmq做,rabbitmq如果失败会去重试的,我这边最多只能在消费者那边catch到,记录到日志做补偿机制(建议看一下高并发场景下怎么处理的)答:redis有一个注解,是针对更新接口的,一旦更新了这个接口就会让redis即时刷新(应该说细一点,这个注解是怎么工作的,是先删后插还是怎么样)答:差不多,因为b+树的特性,它的主键是带着这一行的其他字段的,如果忽略掉网络的话,两者是一样的。问:怎么解决redis的读写不一致的问题。
2024-03-24 10:38:04
500
原创 jvm调优实战操作
假设现在有如图的情况,一般来说我们大部分的对象在一两秒后都会变成垃圾,但是由于我们的s0区太小了,很容易就会在伊甸园区的对象移动到s0时 触发了动态年龄判断,直接移动到老年代,此时每十几秒就有60M的对象移动到老年代,那么我们几分钟就会进行一次fullgc了,会造成我们的卡顿。jvm就是lava虚拟机,他是java运行环境的一部分,它虚构出来的一台计算机,在通过在实际的计算机上仿真模拟各种计算机功能来实现Java应用程序,有JVM从软件层面屏蔽了底层硬件、指令层面的细节让他兼容各种系统。
2024-03-17 18:34:22
258
原创 mybatis多数据源切换
2.2 不使用我们全局配置的mybatis,对指定文件夹下使用我们指定的Session。项目中有可能需要去其他的数据库取其他的表的信息。2.1 直接使用原生jdbc(不推荐)读取配置文件中的配置项。
2024-03-04 16:41:41
381
原创 redis实现分布式锁
分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路。利用setnx方法进行加锁,同时增加过期时间,防止死锁(此方法可以保证加锁和增加过期时间具有原子性),如果setnx返回为false则无法获取该锁。setnx的value可以使用uuid等方式,以便于知道具体是哪个线程获取到了锁 做需要锁的业务逻辑。满足分布式系统或集群模式下多进程可见并且互斥的锁。3.主要存在的几个问题。
2024-03-02 20:55:37
393
原创 使用springSecurity完成快速登录
WebSecurityConfigurerAdapter 是 springSecurity 的 配置类 ,我们继承他生成 类A 并重写 configure 方法 ,并在configure 方法 中获取 所有实现 接口BC 的类,遍历他们,将其作为参数扔到 类D 中 ,同时 类D 继承完AbstractAuthenticationProcessingFilter 后的构造方法可以根据路径 进行过滤,这时我们只需要在 接口BC 定义一个获取 登录路径的接口,就完美解决了这个两个问题。
2024-02-01 15:47:25
556
原创 idea引入jar包作为maven
这里的 groupId 就是你引入原包的包路径,artifactId、version都是随便填的(artifactId最好是jar包名),scope意思是作用范围,按照这里配置就行了,systemPath指的是jar包的地址(如果你配完了在idea里可以试着点一下它,会到对应的jar包那)我们完成了以上的步骤后,本地是可以随便启动的,但如果你要用jenkins部署什么的,就会出现找不到包的情况。2.配置当前项目的maven(如果只想在本机能运行的话,到这一步就够了,后面pom配置也不需要这一步)
2024-01-24 10:52:39
942
1
原创 MySQL三大日志(binlog、redo log和undo log)详解
undo log主要记录了数据的逻辑变化,比如一条INSERT语句,对应一条DELETE的undo log,对于每个UPDATE语句,对应一条相反的UPDATE的undo log,这样在发生错误时,就能回滚到事务之前的数据状态。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。redo log是循环写,日志空间大小固定;的,又称为归档日志,属于逻辑日志,是以二进制的形式记录的,
2023-08-22 14:52:19
2171
原创 Java自动化测试之Chrome网页爬取
记录一个好玩的小插件,可以通过它获取网页上的某个元素,然后得到他的值,不过需要懂前端技术,同时还需要一个chrome的小工具,工具放在我的共享文件里了,叫。
2023-08-11 16:53:38
1123
原创 Java代码利用ch.ethz.ssh2对linux进行操作
这时我们可以使用类似SFTPv3Client 等方式来获取返回值。这个同样是 ch.ethz.ssh2包下的,和上面的pom依赖是一样的。使用 h.ethz.ssh2.Session 的 execCommand 方法执行cmd指令。我们有时候不仅仅是需要执行cmd指令,我们还需要像黑窗口时一样获取指令的返回值。1.首先需要增加依赖。Java代码示例如下。
2023-08-11 16:14:52
1329
原创 类内部接口的一些运用
从作用上来讲,类的内部接口和外部接口,都是启到接口的作用,接口就是来定义规范。可以看作是对类功能的进一步补充,同时内部接口不管有没有声明static,都是静态的。在工作中,我看到有个类它里面有个接口,这个类基本上是做公共帮助类的,好处是可复用性提高了我调用了这个帮助类的方法,这里第二个参数利用了匿名子类这是具体的方法最后说一下这个 D ,它就是一个通配符,我们常用的通配符有 T,E,K,V,?。本质上这些个都是通配符,没啥区别,只不过是编码时的一种约定俗成的东西。比如上述代码中的 T ,我们可
2022-05-12 17:20:42
397
原创 spring.profiles.active
spring.profiles.active在配置文件中可以选择使用什么环境environment variables一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。如图,是在指定用哪个配置文件...
2022-05-10 17:14:08
534
原创 【无标题】@PostMapping 中produces和consumes的使用
produces是指定返回的请求类型consumes是该接口只接受指定的请求类型注: 在前端ajax请求中,我们经常能看到 type 属性,这个就是请求类型,像 application/xml 、 text 等等 。
2022-05-09 11:24:23
1807
原创 jvm三的三种类加载器
JVM有三种类加载器:bootstrap负责加载系统类,extclassloader负责加载扩展类,appclassloader负责加载应用类。他们主要是分工不一样,各自负责不同的区域详情可看以下https://www.cnblogs.com/yzjT-mac/p/5865265.html...
2022-02-22 09:41:16
269
原创 阿里巴巴的Json转换工具-----JSON
1.引入pom<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51<
2022-02-09 17:46:42
5184
原创 springPoi导出excel
一.需要准备的环境pom 文件 需要引入的插件<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency&
2022-02-09 17:28:46
344
原创 InitializingBean
1.实现该接口以后,可以对 bean 的初始化进行操作2. 通过实现 afterPropertiesSet 方法,可以对属性什么的进行修改 。 但这个一般还是用来做校验的3. @PostConstruct 也是可以做的这个讲的还行 添加链接描述...
2022-01-23 21:53:02
115
原创 springBean生命周期至 构造方法推断
1.默认是使用无参的构造方法的2.当参数可以在spirng容器里面直接找到的时候,就可以使用有参的构造方法3.如果想指定构造方法,可以使用@Autowired注解在构造方法上,使用该方法的时候会自动从spring容器中去找bean@Autowiredpublic userService(User user, User user1) {System.out.println(“两个参数的”);this.user = user;this.user1 = user1;}4.当使用多个@autowi
2022-01-22 15:58:04
355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人