
SpringBoot
文章平均质量分 84
Java技术债务
坚决不留下一个技术债务,欢迎关注:Java技术债务!
展开
-
关于Spring中的@Async注解以及为什么不建议使用
Async 注解是 Java 8 中的一个注解,用于标识一个方法是异步执行的。当一个方法被标记为 Async 时,该方法将在一个新的线程中执行,并且可以立即返回一个 CompletableFuture 对象。使用 CompletableFuture 可以更轻松地管理异步计算的结果。@Async// 异步执行一些操作在上面的代码中,doSomethingAsync() 方法被标记为 Async,这意味着该方法将在一个新的线程中异步执行,同时返回一个 CompletableFuture 对象。原创 2024-04-23 14:28:22 · 1292 阅读 · 0 评论 -
Mybatis 一级缓存和二级缓存
Mybaits提供一级缓存,和二级缓存。MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。MyBatis一级缓存的生命周期和SqlSession一致。MyBatis一级缓存内部设计简单,只是一个没有容量限定的HashMap,在缓存的功能性上有所欠缺。原创 2024-04-23 14:23:47 · 930 阅读 · 0 评论 -
Spring事务传播行为,事务隔离级别以及事务失效的场景
@Transactional注解,事务的传播行为,事务失效的原因,事务为什么失效,事务的隔离级别原创 2022-11-02 20:05:10 · 1339 阅读 · 1 评论 -
eclipse中安装Maven
Help-->Install New Software,输入地址:http://download.eclipse.org。找到Maven中的conf下的setting.xml配置文件,添加具体位置。点击User Setting,选择User Settion,添加Maven中的setting配置。检查安装结果:window--> Preferences。配置Maven环境变量:(和jdk配置一样的操作)(和jdk安装要求一样)打开cmd,输入:mvn -version。eclipse在线安装Maven。原创 2018-08-07 15:33:22 · 487 阅读 · 0 评论 -
maven install时报错:程序包不存在以及找不到类
一个微服务通常有两个子module,一般一个写实体类和接口一个写实现方法common类、实体类、被被依赖的类,打包插件配置为原创 2022-03-24 15:33:06 · 7588 阅读 · 5 评论 -
创建Maven项目,pom.xml报错
第三步:经过以上两步后,已经成功将自己下载的maven版本与Eclipse集成,这时右键点击之前报错的项目,右键 Run As ->Maven clean清理一下,再Run As ->Maven install即可。第二步:Eclipse的preferences->Maven->Installations 点击Add添加刚才下载的maven文件夹,然后勾选自己下载的版本而不使用自带版本。原创 2018-08-07 17:29:48 · 3646 阅读 · 0 评论 -
猿创征文|小而巧的API文档生成工具之smart-doc
一个 java restful api 文档生成工具,不用像Swagger一样写大量注解,完全基于接口源码分析来生成接口文档,但是需要按照 java的标准注释写。完全基于接口源码来分析生成接口文档,不采用任何注解侵入到业务代码中。你只需要按照java-doc标准编写注释,smart-doc就能帮你生成一个简易明了的Markdown、HTML5、、的文档。注意:需要完全按照java的标准注释,如果方法注释包含特殊符号或者换行的话,生成的json是会出现格式错误,但是不影响相关的html使用。...原创 2022-08-31 20:41:35 · 1674 阅读 · 3 评论 -
Spring Boot整合dubbo+Nacos实战(二)
文章目录前言新建父工程cloud-alibaba-demo新建子工程dubbo-demo-service新建子工程gtw启动工程测试前言nacos的实战在前面一章已经介绍到Spring Cloud Alibaba+Nacos的介绍与实战(一)以及几种注册中心的区别介绍几种常见的注册中心以及区别新建父工程cloud-alibaba-demo源码已经上传到gitee上地址:https://gitee.com/culzb/cloud-alibaba-demo配置文件pom.xml管理子工程.原创 2022-03-21 11:39:13 · 1771 阅读 · 0 评论 -
Spring Boot或Spring MVC前后端分离的项目跨域问题的解决方案
文章目录源和跨域同源策略CORS-跨域资源共享简单请求非简单请求跨域解决方案源和跨域源(origin)就是协议、域名和端口号。URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口全部相同,则表示他们同源。跨域协议、域名、端口有任何一个不同那么跨域问题就是CORS全称Cross-Origin Resource Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访.原创 2022-03-14 22:05:28 · 1293 阅读 · 0 评论 -
Spring Boot自动配置原理
文章目录@SpringBootApplication@EnableAutoConfiguration@AutoConfigurationPackage@Import总结@SpringBootApplication@SpringBootApplication注解由@SpringBootConfiguration、@ComponentScan、@EnableAutoConfiguration三个注解组成@SpringBootConfiguration:我们点进去以后可以发现底层是Configura.原创 2022-02-13 22:44:54 · 1208 阅读 · 0 评论 -
Spring循环依赖产生原因以及解决的原理
文章目录什么是循环依赖?产生原因Spring的解决办法循环依赖解决的过程源码剖析更多文章和干货请关注公众号之前简单讲过Spring循环依赖的解决办法,但是没有深入源码分析,今天源码相关分析来了。什么是循环依赖?循环依赖问题就是A->B->A,spring在创建A的时候,发现需要依赖B,因为去创建B实例,发现B又依赖于A,又去创建A,因为形成一个闭环,无法停止下来就可能会导致cpu计算飙升public class A { private B b;}public class B {原创 2022-01-18 20:36:02 · 1407 阅读 · 0 评论 -
面试之Spring AOP和IOC
AOP:面向切面编程概念AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。为什么需要 AOP想象下面的场景,开发中在多个模块间有某段重复的代码,我们通常是怎么处理的?显然,没有人会靠“复制粘贴”吧。在传统的面向过程编程中,我们也会将这段代码,抽象成一个方法,然后在需要的地方分别调用这个方法,这样当这段代码需要修改时,我们原创 2022-01-16 22:07:16 · 2649 阅读 · 0 评论 -
Spring Boot多线程环境下,解决多个定时任务冲突问题
问题引入关于定时任务注解@Scheduled在之前的文章已经讲到,Spring Boot定时器默认的是单线程的。但是问题就来了,如果在线程争夺资源后,某个线程需要比较长时间才能执行完,那其他的定时器怎么办,都只能进入等待状态,时间越久,累计等待的定时器越多,这就容易引起雪崩…场景重现我们清晰的看到执行结果都是scheduling-1。如果在线程争夺资源后,某个线程需要比较长时间才能执行完,那其他的定时器怎么办,都只能进入等待状态,时间越久,累计等待的定时器越多,这就容易引起雪崩…其实只需要添原创 2022-01-11 23:18:19 · 2162 阅读 · 0 评论 -
分布式锁的区别
分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的加锁在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则等待。解锁把脚印从沙滩上抹去,就是解锁的过程。锁超时为了避免死锁,我们可以设置一阵风,在单位时间后刮起,将脚印自动抹去。分布式锁的实现有很多,比如基于数据库、memcached、Redis、系统文件、zookeeper等。它们的核心的理念跟上面的过程大致相同原创 2021-11-30 22:51:56 · 2873 阅读 · 0 评论 -
定时任务注解@Scheduled
概述要使用@Scheduled注解,首先需要在启动类添加@EnableScheduling,启用Spring的计划任务执行功能,这样可以在容器中的任何Spring管理的bean上检测@Scheduled注解,执行计划任务。注解定义/** * An annotation that marks a method to be scheduled. Exactly one of * the {@link #cron()}, {@link #fixedDelay()}, or {@link ...原创 2021-11-25 23:13:14 · 2656 阅读 · 0 评论