![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 71
盖丽男
这个作者很懒,什么都没留下…
展开
-
springboot接入springai-openAi代理和智谱ai调用示例
背景配置具体代码总结现在想使用大模型真的门槛超低了,不管是直接使用还是api调用,怎么用这个问题解决起来还是很快的,不过我的问题大部分还是不知道用它做什么,我自己的能力不足以支撑我很好的使用它。原创 2024-06-14 10:49:59 · 848 阅读 · 0 评论 -
JUnit 4单元测试常用注解和方法
JUnit 4作为Java开发者广泛使用的测试框架,通过提供丰富的注解和断言方法,极大地简化了单元测试的编写和维护。本文将介绍JUnit 4的核心特性和最佳实践。这些是JUnit 4中最常用的注解和方法。通过它们,可以编写出结构清晰、易于理解的单元测试。原创 2024-05-12 22:19:24 · 833 阅读 · 0 评论 -
一次java.lang.NoClassDefFoundError的排查过程
最近项目的各类jar包依赖版本都进行了升级,然后测试环境出现一个很诡异的问题,所以记录一下排查过程。原创 2024-03-19 17:22:35 · 564 阅读 · 0 评论 -
数据推送解决方案调研
对于不同的服务器软件来说,所消耗的资源是不一样的。Node 则是所有连接都使用同一个线程,因此消耗的资源会小得多,但是这要求每个连接不能包含很耗时的操作,比如磁盘的 IO 读写。EventSource又称SSE(Server-Sent-Events),一种服务器端到客户端(浏览器)的单项消息推送方案,它和轮询一样,也是基于http请求来完成的。文档编辑类型的需求,左侧是菜单栏,右侧是内容块,现在的需求时,如果多人同时编辑这个方案,当添加章节/调整章节顺序/删除章节时,其他用户能够及时感知到。原创 2024-03-08 17:18:07 · 540 阅读 · 0 评论 -
Spring Boot 2.x集成WebSocket
websocket的接入是非常简单的,就是可能会遇到起不来或者调不通的问题,大部分是因为jar包冲突,可以根据自己碰到的不同问题针对解决。该问题大概率是因为项目中混入了一个以上的容器,请把你能看到的所有jetty包都排除出去,推荐使用maven-helper辅助解决。原创 2024-02-05 14:04:08 · 1607 阅读 · 0 评论 -
spring-session-core导致的接口调用问题,排查记录
我之所以一开始选择第一版,就是因为我不知道这个SESSION是啥时候设置的,所以我只能曲线救国,结果失败了,所以还是要直面这个问题,但是程序里引了那么多的包,我咋知道是哪里这么写了一句呢,我先把sso的包排查了一遍,没找到哪里设置cookie,也没找到设置session的地方,然后全局搜索“SESSION”,真的被我找到一个地方,有一个@Bean,是获取CookieSerializer的,里面有一句。然后通过自定义的那个Bean把咱们自定义的这个返回去。原创 2023-11-06 18:59:01 · 592 阅读 · 0 评论 -
spring-session-core排除某些接口不设置session
需求实现。原创 2023-11-05 13:18:12 · 341 阅读 · 0 评论 -
controlleradvice和handlerinterceptor
介绍@InitBinder和preHandle使用场景@ControllerAdvice注解是在Spring 3.2 中作为@ExceptionHandler、@InitBinder 和@ModelAttribute的组合形式引入的,用来定义@ExceptionHandler、@InitBinder、@ModelAttribute修饰的方法适用于全局,这些方法会作用在所有的@RequestMapping注解的方法上。原创 2023-10-22 20:49:21 · 264 阅读 · 0 评论 -
Spring AOP之MethodInterceptor原理
代理对象通过实现MethodInterceptor接口并协调拦截器链,与各MethodInterceptor实现相结合,最终执行完所有相关通知逻辑并将结果返回给客户端。MethodInterceptor是Spring AOP中的一个重要接口,用来拦截方法调用,它只有一个invoke方法。拦截器链中的每个拦截器通过mi.proceed()调用下一级,并在前/后执行本拦截器的通知逻辑,形成完整的通知调用链。这几个类都实现了MethodIntercepter,并且分别对应了不同的通知类型。是代理类还是原对象?原创 2023-06-18 18:14:14 · 2271 阅读 · 0 评论 -
HandlerInterceptor拦截器的原理
大致流程总结一下就是,我们编写的拦截器,会通过我们的配置类,被spring的容器管理起来,也就是程序启动时就被加载到容器中,然后当我们需要使用的时候,DispatchServlet初始化的时候,拦截器会被加载到它的属性中,注意,这是个list,我们的接口和拦截器都只属于其中的一个,就是这个属性,找到对应的处理器之后,就按照流程执行了以上,其实就HandlerInterceptor。原创 2023-03-31 12:16:26 · 805 阅读 · 0 评论 -
spring的两种拦截器HandlerInterceptor和MethodInterceptor
Spring有两种拦截器提供给我们使用,一种是HandlerIntercepter,另一种是MethodIntercepter。这两种的来源不同,实现方式也不同,具体的下面来看一下。原创 2023-03-21 16:47:37 · 975 阅读 · 0 评论 -
SPRINGBOOT启动原理(基于3.x版本)(三)- SpringApplication里有啥
这也是我们整个程序的入口,spring的启动,从此开始。原创 2023-03-03 16:10:05 · 170 阅读 · 0 评论 -
【JAVA】一个项目如何预先加载数据?
一般我们可能会有一些在应用启动时加载资源的需求,局部或者全局使用,让我们来看看都有哪些方式实现。原创 2023-02-27 14:43:54 · 947 阅读 · 0 评论 -
《Spring揭秘》记录
在 Spring 中,“bean” 是由 Spring IoC 容器管理的对象,可以使用构造函数参数、属性值和方法调用等元数据配置。因此,总之,“spring-beans” 是处理管理 bean 的 Spring Framework 的特定部分,而 “spring-context” 则提供了管理 Spring 应用程序上下文的更广泛的功能。“spring-beans” 和 “spring-context” 都是 Spring Framework 的一部分,这是一个用于构建应用程序的流行的 Java 框架。原创 2023-02-09 11:14:02 · 229 阅读 · 0 评论 -
【问题解决】jasypt-spring-boot-starter导致apollo动态配置刷新失效
目录背景原因解决方案背景1.项目中关于数据库密码等信息想要进行加密处理,所以引入了jasypt-spring-boot-starter,版本3.0.32.后来项目接入了apollo的动态配置中心3.此时发现@Value的值,不能进行动态刷新,当发布新配置时,apollo会进行更新操作,可是程序里仍旧是旧值4.通过查看文件,可以看到本地拉下来的配置文件中,值已经同步成和apollo配置中心一样。原因这块我理解的还不够透彻,大家可以看一下apollo的这个issues,等我研究明白了我再写,先看这原创 2022-03-16 19:37:30 · 5245 阅读 · 4 评论 -
SPRINGBOOT启动原理(基于2.x版本)(二)-SpringFactoriesLoader
目录版本SpringFactoriesLoader引入介绍代码版本版本:2.5.5上一篇:SPRINGBOOT启动原理(基于2.x版本)(一)SpringFactoriesLoader引入从上一篇可以看到,代码中频繁地使用到了SpringFactoriesLoader这个类,大致能看出来是为了拿类的,今天我们详细的研究一下。介绍看一下官网的介绍:General purpose factory loading mechanism for internal use within the fr原创 2022-03-11 17:52:11 · 445 阅读 · 0 评论 -
spring获取环境变量
需求想分辨一下test/prod环境,然后根据环境做一下逻辑处理,比如为测试环境添加了一个通用密码。。。当然这样不太好,不要学我。实现一开始我是想通过application.yml文件里面设置的spring: profiles: active: local来判断的,后来代码写了个bug误以为没起效,就又研究了一下其他方式,当然这种方式实际上是没问题的。现在把这几种方式都记录一下,以供参考。读取配置文件方式首先配置文件内容如下:spring: profiles: ac原创 2022-02-18 14:29:43 · 4463 阅读 · 0 评论 -
SPRINGBOOT启动原理(基于3.x版本)(一)
目录版本注解@SpringBootApplication@EnableAutoConfiguration@AutoConfigurationPackage@Import({AutoConfigurationImportSelector.class})介绍指定class数组方式ImportSelector方式(Spring Boot底层采用比较得多的方式)ImportBeanDefinitionRegistrar方式正题参考版本版本:2.5.5注解我们从启动类入手,springboot的启动类上要添加原创 2022-02-12 16:43:46 · 632 阅读 · 0 评论