摘要: AbstractApplicationContext的核心方法refresh()分析 AbstractApplicationContext的refresh()是 Spring 最核心的方法,没有之一,上帝就是用这个方法创造了 Spring 的世界。这是一个同步方法,用synchronized关键字来实现的。该方法包含以下12个方法(步骤)。 prepareRefresh() obta 阅读全文
posted @ 2023-12-02 15:31 残城碎梦 阅读(150) 评论(0) 推荐(0) 编辑
摘要: Intellij Idea搭建Spring环境-全注解(不用web.xml) 首先要创建一个普通的Maven Web项目,不需要web.xml,如果有的话直接删除。 特别注意:Spring在整合其他组件的时候,如果其他组件已引入了一些Spring的jar包(如spring-data-mongodb),要注意与项目使用的主版本最好一致,不然会因为依赖冲突导致一些奇奇怪怪的错误, 阅读全文
posted @ 2023-11-19 21:19 残城碎梦 阅读(48) 评论(0) 推荐(0) 编辑
摘要: Intellij Idea搭建Spring环境-xml方式 本篇博客介绍适合使用xml配置Spring环境和SpringMVC环境。 ① 首先我们使用maven新建一个普通的java web工程(包含WEB-INF/web.xml),然后在pom文件中相关的依赖 maven创建的web工程标准目录结构一般为: |--root |--pom.xml |--sr 阅读全文
posted @ 2023-11-14 08:54 残城碎梦 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 可以使用对应的图标搜索对应的专题文章。 专题标题 专题图标 Java基础 ♨ Java集合 ❂ Java并发 ㉿ Java虚拟机 ❀ MySQL Ⓜ Spring & Spring MVC Ⓢ Mybatis ✒ Redis ≅ SpringBoot ㊫ Spring Cloud ☁ 消息队列 ❧ 阅读全文
posted @ 2023-04-23 21:07 残城碎梦 阅读(56) 评论(1) 推荐(1) 编辑
摘要: 【Java基础篇】 封装、继承、多态三大特性 基本数据类型之间的转换操作 谈谈Java面向对象设计的六大原则 反射机制 Java的回调机制 为什么不同方法返回类型不算方法重载? String常量和对象 static关键字 final关键字 String、StringBuffer、StringBuil 阅读全文
posted @ 2023-02-25 10:24 残城碎梦 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 【专题-Java】 JDK、JRE、JVM之间的关系是什么样的? Java中的 <<、>>、>>> 是什么? Java跨平台运行的原理 Java中有几种基本数据类型?它们分别占多大字节? &和&&的作用和区别 final关键字的作用 final与static的区别 |和||的作用和区别 Java中数 阅读全文
posted @ 2023-01-08 12:08 残城碎梦 阅读(86) 评论(1) 推荐(0) 编辑
摘要: 系统开发中的术语 高内聚/低耦合 (1)概念 在软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则是高内聚低耦合。 从模块粒度来看,高内聚:尽可能类的每个成员方法只完成一件事(单一责任原则); 低耦合:减少类内部,一个成员方法调用另一个成员方法。 从类角度来看, 高内聚低耦 阅读全文
posted @ 2022-02-08 22:07 残城碎梦 阅读(939) 评论(0) 推荐(1) 编辑
摘要: Spring的数据绑定功能 Spring框架提供了强大的数据绑定功能,可以将外部数据源(如HTTP请求参数、表单数据、属性文件等)自动绑定到Java对象中。 数据绑定是将外部数据与Java对象中的属性进行关联的过程,常见于Spring的Web开发。 @InitBinder的作用 @InitBinder从字面意思可以看出这个的作 阅读全文
posted @ 2024-01-03 10:44 残城碎梦 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Spring MVC的三种异常处理方式 Spring MVC异常的处理流程 异常分为编译时异常和运行时异常,编译时异常我们 try-catch进行捕获,捕获后自行处理,而运行时异常是不 可预期的,就需要规范编码来避免,在SpringMVC 中,不管是编译异常还是运行时异常,都可以最终由 SpringMVC提供的异常处理器进行统一处理,这样 阅读全文
posted @ 2024-01-03 08:44 残城碎梦 阅读(79) 评论(0) 推荐(0) 编辑
摘要: @ModelAttribute注解的用法 在SpringMVC的Controller中使用@ModelAttribute时,其位置包括下面三种: 应用在方法上 应用在方法的参数上 应用在方法上,并且方法也使用了@RequestMapping 应用在方法上 首先说明一下,被@ModelAttribute注解的方法会在Controller每个方 阅读全文
posted @ 2024-01-01 22:03 残城碎梦 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Spring MVC中Controller接收请求参数的常见方式 在Spring中 Controller注解用于指示Spring类的实例是一个控制器,相对于实现Controller接口变得更加简单。而且实现Controller接口只能处理一个单一的请求,而是用@Controller注解可以支持同时处理多个请求动作,更加灵活。 @Controller用于标记一个类, 阅读全文
posted @ 2024-01-01 15:22 残城碎梦 阅读(638) 评论(0) 推荐(0) 编辑
摘要: Spring MVC执行流程 Spring MVC 执行流程 Spring MVC 执行流程如图: SpringMVC的执行流程如下(控制器--模型--视图): 用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交到 DispatcherServlet(前端控制器); 由 DispatcherServl 阅读全文
posted @ 2024-01-01 09:15 残城碎梦 阅读(252) 评论(0) 推荐(0) 编辑
摘要: Spring最全的依赖注入方式 Spring 框架中最核心思想就是: IOC(控制反转):即转移创建对象的控制权,将创建对象的控制权从开发者转移到了 Spring 框架的 IoC 容器。 AOP(切面编程):将公共行为(如记录日志,权限校验等)封装到可重用的模块中,而使原本的模块内只需关注自身的个性化行为。 本文将主要介绍 Spr 阅读全文
posted @ 2023-12-31 22:05 残城碎梦 阅读(56) 评论(0) 推荐(0) 编辑
摘要: Spring如何利用三级缓存解决单例Bean的循环依赖 循环依赖:就是N个类循环(嵌套)引用。 通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一幅经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用关系): 注意:其实可以N=1,也就是极限情况的循环依赖:自己依赖自己 可以设想一下这个场景:如果在日常开发中我们用new对象的方式,若构造函 阅读全文
posted @ 2023-12-31 18:38 残城碎梦 阅读(68) 评论(0) 推荐(0) 编辑
摘要: Spring AOP快速上手 什么是AOP AOP全称是aspect-oriented programing 面向切面编程。用于解决横向关注点的问题,横向关注点是指多个模块或者模块中的多个功能需要共享的功能,如日志记录、事务管理、安全控制等等。即重复性的代码抽象出来,形成可复用的代码模块。 AOP的核心术语 Joinpoint( 阅读全文
posted @ 2023-12-31 11:31 残城碎梦 阅读(40) 评论(0) 推荐(0) 编辑
摘要: Spring 事务快速上手 Spring事务与数据库事务关系 spring事务本质上使用数据库事务,而数据库事务本质上使用数据库锁,所以spring事务本质上使用数据库锁,开启spring事务意味着使用数据库锁。 spring事务是对数据库事务的封装,最后本质的实现还是在数据库,如果数据库不支持事务,spring的事务是不起作 阅读全文
posted @ 2023-12-30 15:53 残城碎梦 阅读(94) 评论(0) 推荐(0) 编辑
摘要: Spring应用最常用的工具类汇总 文件资源访问 假设有一个文件地址位于 Web 应用的类路径下,您可以通过以下方式对这个文件资源进行访问: FileSystemResource 以文件系统绝对路径的方式进行访问; ClassPathResource 以类路径的方式进行访问; ServletContextResource 以相对于 W 阅读全文
posted @ 2023-12-26 17:57 残城碎梦 阅读(61) 评论(0) 推荐(0) 编辑
摘要: Spring提供的实用纯Java工具类合集 在Spring Framework里的spring-core核心包里面,有个org.springframework.util里面有不少非常实用的工具类。 该工具包里面的工具类虽然是被定义在Spring下面的,但是由于Spring框架目前几乎成了JavaEE实际的标准了,因此我们直接使用也是无妨的,很 阅读全文
posted @ 2023-12-26 08:36 残城碎梦 阅读(113) 评论(0) 推荐(0) 编辑
摘要: Spring Bean的生命周期 在Spring框架中,在IOC容器中管理的Bean分为单例和原型两种,单例Bean在容器启动时就实例化,原型Bean则是每次从容器中请求时才会实例化。而不管是单例还是原型,Bean的生命周期都是基本一致的。 生命周期流程图 Spring Bean的生命周期分为四个阶段:实例化 Instantiati 阅读全文
posted @ 2023-12-24 14:32 残城碎梦 阅读(26) 评论(0) 推荐(0) 编辑
摘要: Spring的事务实现原理 Spring事务 Spring本身并不实现事务,Spring事务的本质还是底层数据库对事务的支持,没有数据库事务的支持,Spring事务就不会生效。 例如:使用JDBC操作数据库,使用事务的步骤主要分为如下5步: 第一步:获取连接Connection con = DriverManager.getC 阅读全文
posted @ 2023-12-24 08:40 残城碎梦 阅读(281) 评论(0) 推荐(0) 编辑
摘要: BeanFactory后置处理器之PropertySourcesPlaceholderConfigurer 有的时候,我们需要读取配置文件中的属性,将其作为成员变量赋给对应的Bean,如下通过xml配置: <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-metho 阅读全文
posted @ 2023-12-23 19:41 残城碎梦 阅读(66) 评论(0) 推荐(0) 编辑
摘要: Spring的BeanDefinitionRegistryPostProcessor接口详解 BeanDefinitionRegistryPostProcessor介绍 BeanDefinitionRegistryPostProcessor 它是Spring框架的一个扩展点,用于对Bean定义的注册过程进行干预和定制,例如添加,修改或删除Bean定义等。 BeanDefinitionRegi 阅读全文
posted @ 2023-12-23 11:40 残城碎梦 阅读(91) 评论(0) 推荐(0) 编辑
摘要: Spring的Bean后置处理器之AnnotationAwareAspectJAutoProxyCreator 本文能帮你回答以下几个问题; AnnotationAwareAspectJAutoProxyCreator后置器的作用是什么? Spring AOP自动增强bean是如何实现的。 如何在spring上下文添加AnnotationAwareAspectJAutoProxyCreator? 如何利用Pr 阅读全文
posted @ 2023-12-23 11:26 残城碎梦 阅读(66) 评论(0) 推荐(0) 编辑
摘要: Spring的Bean后置处理器之CommonAnnotationBeanPostProcessor 本文帮你回答以下几个问题: @PostConstruct和@PreDestroy注解标注的方法是在什么阶段调用的? @Resource是如何完成属性自动注入的? @Resource相比@Autowired查找候选者的过程差异是什么? 类定义 类的作用 对@PostConstruct和@PreDest 阅读全文
posted @ 2023-12-20 09:03 残城碎梦 阅读(40) 评论(0) 推荐(0) 编辑
摘要: Spring的Bean后置处理器之AutowiredAnnotationBeanPostProcessor 学习此文后,可以回答以下几个问题: @Autowired注解是如何完成属性自动注入的? 如何改变bean实例化构造函数的选择? @Autowired查找候选者过程是什么? @Qualifier与@Primary的作用? AutowiredAnnotationBeanPostProcessor介绍 类 阅读全文
posted @ 2023-12-20 08:36 残城碎梦 阅读(395) 评论(0) 推荐(0) 编辑
摘要: Spring的BeanPostProcessor接口详解 BeanPostProcessor的作用 bean的后置处理器是spring ioc容器管理bean最重要的一个拓展机制,通过向BeanFactory中添加自定义的BeanPostProcessor,就能够在bean的生命周期内对bean的实例化、属性注入、初始化等进行自定义修改。 例如:在bean 阅读全文
posted @ 2023-12-19 11:49 残城碎梦 阅读(1385) 评论(0) 推荐(1) 编辑
摘要: Spring手动构建BeanDefinition的几种方法 GenericBeanDefinition RootBeanDefinition ChildBeanDefinition BeanDefinitionBuilder GenericBeanDefinition @Data public class Student { String name; int 阅读全文
posted @ 2023-12-17 20:02 残城碎梦 阅读(53) 评论(0) 推荐(0) 编辑