Spring
文章平均质量分 76
蹦跶的蜗牛
程序猿
展开
-
SpringBoot 基础
1.主要特性SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率;自动配置:SpringBoot的自动配置特性利用了Spring对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们;使部署变得简单,SpringBoot内置了三种Servlet容器,Tomca原创 2022-05-26 15:33:03 · 664 阅读 · 0 评论 -
Spring MVC的url-pattern配置及原理分析
在SpringMVC中,我们通常会在web.xml文件中配置要拦截的url请求,这个时候就需要用到url-pattern来进行配置了。下面是一个web.xml的示例<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>A原创 2022-05-11 17:13:24 · 570 阅读 · 0 评论 -
Spring Web MVC工作流程
1.请求处理流程流程说明第⼀步:⽤户发送请求⾄前端控制器DispatcherServlet第⼆步: DispatcherServlet收到请求调⽤HandlerMapping处理器映射器第三步:处理器映射器根据请求Url找到具体的Handler(后端控制器),⽣成处理器对象及处理器拦截器(如果 有则⽣成)⼀并返回DispatcherServlet第四步: DispatcherServlet调⽤HandlerAdapter处理器适配器去调⽤Handler第五步:处理器适配器执⾏Handler第原创 2022-05-11 16:08:47 · 270 阅读 · 0 评论 -
Spring 声明式事务控制
声明式事务很⽅便,尤其纯注解模式,仅仅⼏个注解就能控制事务了思考:这些注解都做了什么?好神奇!@EnableTransactionManagement @Transactional1. @EnableTransactionManagement@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(TransactionManagementConfigurationSelector.class)原创 2022-05-09 18:00:08 · 93 阅读 · 0 评论 -
Spring AOP源码剖析
1.AOP基础用例准备Bean定义@Componentpublic class AopBean { public void tech(){ System.out.println("java spring aop learning......"); }}Aspect定义@Component@Aspectpublic class AopAspect { @Pointcut("execution(* com.lagou.edu.AopBean.tech(..))"原创 2022-05-09 16:13:59 · 235 阅读 · 0 评论 -
Spring IOC循环依赖问题
1. 什么是循环依赖循环依赖其实就是循环引⽤,也就是两个或者两个以上的 Bean 互相持有对⽅,最终形成闭环。⽐如A依赖于B, B依赖于C, C⼜依赖于A。注意,这⾥不是函数的循环调⽤,是对象的相互依赖关系。循环调⽤其实就是⼀个死循环,除⾮有终结条件。Spring中循环依赖场景有:● 构造器的循环依赖(构造器注⼊)● Field 属性的循环依赖(set注⼊)其中,构造器的循环依赖问题⽆法解决,只能拋出 BeanCurrentlyInCreationException 异常,在解决属性循环依赖时原创 2022-05-08 18:27:58 · 468 阅读 · 3 评论 -
lazy-init 延迟加载机制原理
1. lazy-init延迟加载机制分析普通 Bean 的初始化是在容器启动初始化阶段执⾏的,⽽被lazy-init=true修饰的 bean 则是在从容器⾥第⼀次进⾏context.getBean() 时进⾏触发。 Spring 启动的时候会把所有bean信息(包括XML和注解)解析转化成Spring能够识别的BeanDefinition并存到Hashmap⾥供下⾯的初始化时⽤,然后对每个BeanDefinition 进⾏处理,如果是懒加载的则在容器初始化阶段不处理,其他的则在容器初始化阶段进⾏初始化并原创 2022-05-08 17:24:14 · 472 阅读 · 0 评论 -
Spring Bean创建流程
创建Bean入口:org.springframework.context.support.AbstractApplicationContext#refresh进入finishBeanFactoryInitialization方法:进入beanFactory.preInstantiateSingletones方法:继续跟踪下去,进到org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean方法,直接找到方法中创建原创 2022-05-06 17:04:13 · 456 阅读 · 0 评论 -
BeanFactory创建流程
1. 获取BeanFactory在SpringIOC容器创建的主流程中,第二步就是获取一个BeanFactory对象,详情可见如下方法 org.springframework.context.support.AbstractApplicationContext#refresh,入口如下:ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();进入**obtainFreshBeanFactory()**方法,看到如下原创 2022-05-06 14:09:15 · 1109 阅读 · 0 评论 -
Spring IOC容器初始化主流程
1. Spring IOC容器体系IoC容器是Spring的核⼼模块,是抽象了对象管理、依赖关系管理的框架解决⽅案。 Spring 提供了很多的容器,其中 BeanFactory 是顶层容器(根容器),不能被实例化,它定义了所有 IoC 容器 必须遵从的⼀套原则,具体的容器实现可以增加额外的功能,⽐如我们常⽤到的ApplicationContext,其下更具体的实现如 ClassPathXmlApplicationContext 包含了解析 xml 等⼀系列的内容,AnnotationConfigAppl原创 2022-05-05 14:09:20 · 1551 阅读 · 0 评论 -
Spring-FactoryBean和BeanFactory
一、FactoryBean在Spring中Bean有两种,一种是普通bean,一种是FactoryBean,通俗一点就是工厂Bean,FactoryBean可以⽣成某⼀个类型的Bean实例(返回给我们),也就是说我们可以借助于它⾃定义Bean的创建过程。以下是FactoryBean的源码:下面使用FactoryBean创建自定义的Bean。首先创建Company类:创建CompanyFactoryBean类,实现FactoryBean接口:xml中注册Company对象,此时需要使用Comp原创 2022-04-27 17:08:43 · 543 阅读 · 0 评论