
Spring
文章平均质量分 79
spring
w_t_y_y
个人在线笔记~,其他博客:https://www.zhihu.com/people/wtyy666
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spring/springboot SPI(二)配合使用的接口
三、org.springframework.boot.autoconfigure.EnableAutoConfiguration。六、ApplicationContextInitializer。二、ReadyEventListener。监听 Spring 容器事件,如。七、FailureAnalyzer。原创 2025-07-24 15:30:37 · 121 阅读 · 0 评论 -
spring/springboot SPI(一)介绍&springboot加载机制
是 **Spring Boot 自动装配机制(SPI 扩展)**的核心配置文件,用于注册一些在 Spring Boot 启动过程中被自动加载的类。原创 2025-04-22 14:35:53 · 444 阅读 · 0 评论 -
常见问题(一)循环依赖
大型项目中经常遇到循环依赖的问题,导致CICD失败。原创 2024-12-27 14:03:39 · 265 阅读 · 0 评论 -
拦截器与过滤器(四)应用demo
自定义注解拦截原创 2022-07-29 10:45:41 · 958 阅读 · 0 评论 -
拦截器与过滤器(三)过滤器集成与使用
自定义过滤器类实现Javax.serlvet.Filter接口(对应servlet-api.jar),加上Component注解可以被扫描到即可,不需要其他的配置了。原创 2024-09-13 17:34:26 · 395 阅读 · 0 评论 -
拦截器与过滤器(二)拦截器集成与使用
业务中,我们经常需要自定义拦截器来记录用户行为日志,普通的参数可以从request的getParameterMap中获取,而@RequestBody的参数需要从request的InputStream中获取,但是InputStream只能读取一次,如果拦截器读取了参数,controler层就读取不到参数了,所以这类参数需要单独获取,可以把request封装一下,copy一份requet,一个用于在拦...原创 2019-12-05 16:42:04 · 8230 阅读 · 2 评论 -
拦截器与过滤器(一)比较
一、拦截器:实现方法:实现HandlerInterceptor接口如拦截器记录访问日志:import com.alibaba.fastjson.JSON;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAnd原创 2020-05-21 11:06:28 · 482 阅读 · 0 评论 -
spring event事件(四)内部事件(1)ApplicationReadyEvent
是 Spring Boot 提供的一个事件,它表示:整个 Spring 应用上下文已完全启动,Spring Boot 应用已准备好接受请求。原创 2025-05-20 16:57:05 · 332 阅读 · 0 评论 -
spring event事件(三)广播与异步问题
下面对同一个事件加上多个监听器,copy MyListenerOne为MyListenerTwo。触发event,监听器和调用处是同步执行的,调用处-->listen执行-->调用处;可以看到多个listener都监听到了,是广播的形式。在某一个Listener加入异常代码。调用接口到返回的时间很长,日志打印。日志打印这一个监听器报错。原创 2024-09-14 14:58:10 · 997 阅读 · 0 评论 -
spring event事件(二)@EventListener注解
[email protected]("监听到 ContextRefreshedEvent...");log.info("监听到 MyEvent...");System.out.println("时间:" + myEvent.getTime() + " 信息:" + myEvent.getMsg());@[email protected]("监听到 MyEvent...");原创 2024-05-08 13:19:43 · 708 阅读 · 1 评论 -
spring event事件(一)介绍与实现
当某个事件触发的时候,就会执行的方法块。当然,springboot很贴心地提供了一个注解来实现监听。自定义事件return msg;@Slf4j@[email protected]("监听到 ContextRefreshedEvent...");log.info("监听到 MyEvent...");System.out.println("时间:" + myEvent.getTime() + " 信息:" + myEvent.getMsg());原创 2024-05-08 10:15:49 · 1766 阅读 · 0 评论 -
spring模块(五)SpringMVC(2)代码实现
(1)转发:在返回值前面加"forward:",譬如"forward:user.do?(2)重定向:在返回值前面加"redirect:",譬如"redirect:http://www.baidu.com"原创 2024-02-23 10:40:08 · 209 阅读 · 0 评论 -
spring模块(五)SpringMVC(1)介绍与demo
一、介绍1、介绍SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。说明:spring(mvc)项目因基于xml配置文件实现,配置和启动部署较麻烦,现已使用springboot代替。原创 2017-12-07 18:44:24 · 648 阅读 · 1 评论 -
spring事务
一、介绍1、事务事务(Transaction):访问并可能更新数据库中各种数据项的一个程序执行单元(unit),它通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起。当在数据库中更改数据成功时,在事务中更改的数据便会提交,不再改变。否则,事务就取消或者回滚,更改无效。事务(Transaction)是基于关系型数据库(RDBMS)的企业应用的重要组成部分。在软件开发领域,事务扮演者十分重要的角色,用来确保应用程序数据的完整性和一致性。2、特点原创 2018-01-07 14:40:11 · 3168 阅读 · 0 评论 -
Spring AOP(二)使用
(2)applicationContext.xml配置文件。原创 2024-05-22 14:16:25 · 355 阅读 · 0 评论 -
Spring AOP(一)原理
一、介绍为什么有AOP在面向对象编程的系统中,会使用对象来封装一些对象。并通过对象的协作进行完成系统的功能。如员工管理、部门管理、请假管理等功能。现在需要对系统中的所有的新增,修改,删除,等记录下操作的记录,这样需要这样写代码:而这些操作都是通过“复制黏贴式”的开发。面向对象在处理这样的业务时由于其封装性导致代码并无法被公用。需要有一种技术来实现方法的扩展(功能增强)。AOP就正是原创 2017-12-11 16:07:04 · 285 阅读 · 0 评论 -
SpringBean模块(五)BeanWrapperImpl内省
一、介绍。原创 2024-06-27 15:41:00 · 391 阅读 · 0 评论 -
SpringBean模块(四)作用域&三级缓存&自动装配
但是如果单例Bean是一个无状态Bean,也就是线程中的操作不会对Bean的成员执行查询以外的操作,那么这个单例Bean是线程安全的。对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。第二种setter方法(多例)的情况下,每一次getBean()时,都会产生一个新的Bean,如此反复下去就会有无穷无尽的Bean产生了,最终就会导致OOM问题的出现。原创 2019-05-22 16:47:50 · 2215 阅读 · 0 评论 -
SpringBean模块(三)具有生命周期管理能力的类(1)AutowireCapableBeanFactory
【代码】SpringBean模块(三)生命周期管理能力相关的类(1)AutowireCapableBeanFactory。原创 2025-05-20 16:44:22 · 159 阅读 · 0 评论 -
SpringBean模块(二)bean初始化(2)和容器初始化顺序的比较--引入ApplicationContextInitializer
前面介绍了获取容器可以借助ApplicationContextAware的setApplicationContext方法,初始化接口可以借助一些注解也可以借助bean的初始化方法,那么他们的执行顺序是什么样的呢?原创 2025-03-28 10:05:40 · 192 阅读 · 0 评论 -
SpringBean模块(二)bean初始化(1)几种方法
在开发过程中,可能有一些固定的数据比如字典表数据,可以在项目初始化时候获取并保存到常量类中,可以避免多次调用数据库。在项目启动时初始化数据有以下几种方法:1、@PostConstruct注解:通过给方法名加上@PostConstruct注解,会在项目初始化时执行:@Compantpublic class Demo{ @PostConstruct public void init(){ //项目启动执行方法 }}2、在配置文件注入原创 2020-07-21 10:49:21 · 2757 阅读 · 0 评论 -
SpringBean模块(一)定义&如何创建&生命周期
在 Spring 框架中,Bean是指由Spring 容器管理的Java 对象。Spring 负责创建、配置和管理这些对象,并在应用程序运行时对它们进行依赖注入(Dependency Injection,DI)。通俗地讲,Spring Bean 就是 Spring 容器中的一个组件,它可以是一个普通的 Java 类,但被 Spring 管理起来后,就称为 "Bean"。2、核心特点由 Spring 容器管理Bean 的生命周期由 Spring 负责,不需要手动创建和销毁。原创 2025-03-28 13:37:50 · 680 阅读 · 0 评论 -
spring容器模块(三)手动获取BeanFactory和ApplicationContext(通过ApplicationContextAware)
为什么要获取上下文对象;如何获取原创 2024-01-05 15:19:07 · 661 阅读 · 0 评论 -
spring容器模块(二)两种容器BeanFactory和ApplicationContext(比较、原理)
有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。在spring之前,传统的做法是new来创建对象,有了IOC容器,我们不必主动创建,而是从容器中直接获取。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的资源了。原创 2024-01-05 14:50:33 · 608 阅读 · 0 评论 -
spring容器模块(一)IOC控制反转和DI依赖注入
通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的资源了。原创 2024-01-05 14:14:02 · 484 阅读 · 0 评论 -
Spring框架概述
1、Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。2、特点:Spring框架是一个非常强大的反转控制(IOC)框架,以帮助分离项目组件之间的依赖关系。原创 2017-12-07 18:26:00 · 330 阅读 · 1 评论