
spring
文章平均质量分 85
go go go go go
这个作者很懒,什么都没留下…
展开
-
springboot自动配置原理
注册入口所在包springboot入口代码:@SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); }}@SpringBootApplication里面是:@SpringBootConfiguratio原创 2022-02-23 22:49:50 · 189 阅读 · 0 评论 -
循环依赖报错 Requested bean is currently in creation: Is there an unresolvable circular reference?
原因今天做项目遇到了这个坑,字面上看是触发了循环依赖,由于我使用的是构造器注入,所以遇到循环依赖就会导致报错。如图所示,我的依赖链形成了一个环路。为什么构造器注入不行因为要实现循环依赖就得在A调用B,B再调用A的时候,A提前放入singletonFactories三级缓存,否则A和B都没法实例化。而加入singletonFactories三级缓存的前提是执行了构造器,所以构造器注入的循环依赖没法解决,它使用了自己的构造器。spring源码如下: // Eagerly cache singleton原创 2020-06-29 20:03:40 · 16204 阅读 · 1 评论 -
Spring扩展
Spring实例化流程要想对Spring进行扩展,首先得先了解Spring实例化流程。如下UML图所示,像普通Java类一样,运行Main方法后,JVM将类文件加载到方法区。public class Test { public static void main(String[] args) { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); //S原创 2020-05-31 18:07:46 · 574 阅读 · 0 评论 -
基于UML图对比Java类的实例化与Spring实例化
原创 2020-05-28 23:44:39 · 471 阅读 · 0 评论 -
Spring的循环依赖
Spring的两个Bean可以循环依赖吗?我们首先在一个Spring项目里面准备两个Bean,让它们互相依赖注入:@Componentpublic class IndexService { @Autowired private UserService userService; public IndexService() { System.out.println("from IndexService"); } public void getUserService() { user原创 2020-05-27 23:58:19 · 469 阅读 · 0 评论 -
Spring揭秘——什么是IOC和DI
一、IoC的基本概念IoC全称Inversion of Control,即控制反转。它的核心技术是DI (Dependency Injection),即依赖注入。什么是IOC?打个比方,我们要做一个系统,为客户提供股票新闻。通常我们需要从不同的新闻社订阅新闻来源,然后通过批处理程序定时到指定的新闻服务器抓取最新的股票新闻,接着保存数据库,最后在前端显示。代码如下:public class F...原创 2020-02-23 22:39:43 · 229 阅读 · 0 评论 -
Spring实战笔记之装配Bean
任何一个成功的应用都是由多个为了实现某一个业务目标而相互协作的组件构成的。例如:在一个在线购物系统中,订单管理组件需要和产品管理组件以及支付组件协作。在Spring中,对象无需自己查找或创建与其关联的其他对象,容器负责把需要相互协作的对象引用赋予各个对象。创建应用对象之间协作的关系的行为通常称为装配,这也是依赖注入的本质。Spring装配bean的可选方案1、在XML中进行显示配置2、在...原创 2020-01-31 21:48:38 · 210 阅读 · 0 评论 -
Spring实战笔记之依赖注入
Spring的作用Spring是为了简化企业级应用开发而创建的。Spring是如何简化Java开发的它采取了以下4种关键策略:1、基于POJO的轻量级和最小侵入性编程2、通过依赖注入和面向接口实现松耦合3、基于切面和惯例进行声明式编程4、通过切面和模板减少样板式代码基于POJO的轻量级和最小侵入性编程Spring竭力避免因自身的API而弄乱应用代码,最多使用下Spring的注解。...原创 2020-01-30 22:07:00 · 345 阅读 · 0 评论 -
Spring官方文档总结(持续更新)
Spring IoC容器和bean的介绍这是一个对象定义他们的依赖的过程,容器在创建bean时注入这些依赖。因为不再是自己new依赖,让spring控制,所以也叫做控制反转(IoC)。BeanFactory接口提供了配置框架和基本功能。ApplicationContext是BeanFactory的子接口,它提供更多企业级应用的相关功能。容器概述org.springframework.con...原创 2020-01-17 20:12:03 · 553 阅读 · 0 评论 -
Spring的Ioc配置元数据的三种方式
一、xml配置方式下面的例子展示了service层对象(services.xml)配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSch...原创 2020-01-14 15:25:57 · 807 阅读 · 0 评论 -
springMVC请求流程详解
SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。(一)整体流程具体步骤:1、 首先用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的 1、2 步骤;2、 页面控制器接收到请求后,进行功能...转载 2019-12-16 10:08:21 · 141 阅读 · 0 评论 -
学习Spring aop两种配置方式
aopaop:面向切面编程,它可以解决重复代码。 aop有两种方式:一、.xml方式1、在springmvc-servlet.xml中配置aop,应用bean文件;<!--aop配置--> <aop:config> <aop:aspect id="log" ref="loging">原创 2018-04-30 23:05:40 · 266 阅读 · 0 评论 -
Spring通过IOC帮我们做火鸡
IOC——setter注入方式1、准备dmo首先准备一只火鸡public class Turkey { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id ...原创 2019-12-10 15:52:44 · 148 阅读 · 0 评论