spring源码
文章平均质量分 86
学习笔记
kaico2018
喜欢是一种动力,兴趣是一位老师。
展开
-
代理设计模式-@Async异步注解失效
关键字:@interface参考以前博客:https://blog.csdn.net/weixin_44044929/article/details/117108409实现思路:1、异步注解2、接口和实现类3、JDK动态代理需要实现的接口类4、测试类总结分析:加上自定义的异步注解,查看输出的日志顺序,然后注释掉异步注解,再看输出的日志顺序。核心在于AOP切面类上:拦截加了自定义异步注解的方法,看起一个线程执行目标方法。Spring的异步注解@Async失效分析注解原理:AOP技术–》动态代理技原创 2022-06-30 13:57:00 · 301 阅读 · 0 评论 -
spring源码-事务
之前介绍了使用 SpringAOP 实现事务(见博客)Spring 中事务注解的介绍和使用方式(见博客),注意事务的隔离级别、传播行为Spring 声明事务源码分析开启@EnableTransactionManagement开启事务注解@Import(TransactionManagementConfigurationSelector.class)默认使用 PROXY 代理选择器继续加载AutoProxyRegistrar、ProxyTransactionManagementCon原创 2022-03-15 19:22:03 · 788 阅读 · 0 评论 -
springMVC源码-HandlerAdapter源码
适配器模式将一个类的接口转换成用户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能在一起工作。springMVC为什么通过适配器执行请求方法为什么使用handler去拿到 HandlerAdapter再去执行目标方法呢?答:如果不使用适配器模式的话,就需要经过判断来判定使用哪个handler(也就是控制器),后期不利于扩展handler类型。总的来说就是利于handler的类型扩展。如果后期需要自定义适配器,可以使用适配器针对不同的hanlder类型找到不同的适配器实现执行。如果原创 2022-03-08 19:24:46 · 287 阅读 · 0 评论 -
springMVC-高仿手写springMVC框架
思路整理SpringMVC原理简单回顾 核心:靠的就是DispatcherServlet拦截客户端所有请求实现转发到具体的请求方法执行。SpringMVC思路:控制层和 url 映射关联定义好存放到Map集合中 肯定在项目启动时候1.扫包获取cLass中的方法有加上RequestMapping 如果有有该注解的话存放到map集合2.key: urL: value方法访问这个请求根据url查找对应的执行的方法在通过java反射执行该方法。高仿 SpringMVC 框架适配器模式定义:将原创 2022-03-04 20:36:10 · 402 阅读 · 0 评论 -
springMVC源码-DispatcherServlet源码
DispatcherServlet介绍DispatcherServlet 就是一个servlet 类,无非就是包装起来根据url能够映射找到我们的springMVC中定义的请求方法。DispatcherServlet 的继承关系DispatcherServlet 继承 FrameworkServlet 继承 HttpServlet面向对象基本思想:重写、先走父类,再走子类所以:先看HttpServlet类再找到我们最后的子类DispatcherServlet 源码流程分析框架流程Sprin原创 2022-03-04 19:40:08 · 683 阅读 · 0 评论 -
springmvc源码-注解启动
servlet 介绍Servlet是sun公司提供的一门用于开发动态web资源的技术。 Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤: 1、编写一个Java类,实现servlet接口。 2、把开发好的Java类部署到web服务器中。 按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为ServletServlet 和 SpringMVC的关系Sprin原创 2022-03-03 19:50:12 · 820 阅读 · 0 评论 -
spring源码-循环依赖
什么是SpringBean的循环依赖现在创建一个对象A 对象中的属性B (A依赖与B对象),B对象 B对象中属性依赖与ASpring中的循环依赖问题在单例的情况下,Spring是已经帮助我们解决好了。多例的情况下,是无法解决循环依赖的问题。为什么多例子的情况下 spring没有解决循环依赖问题?答:因为不断在创建对象,没有明确指定有那个对象。主要的原因:如果是单例对象可以用缓存可以存放,如果是多例子情况缓存存放多个话,后期不能明确指定哪一个对象。如何解决多例情况下的循环依赖问题手动set属性值原创 2022-03-02 19:34:24 · 282 阅读 · 0 评论 -
spring源码-aop通知调用链源码
AOP源码回顾SpringAop的底层实现原理设计模式运用︰代理设计模式、底层五个通知形成调用采用责任链设计模式。1、配置@EnableAspectJAutoProxy ,注解开启SpringAOP注解。2、@lmport(AspectJAutoProxyRegistrar.class)往IOC容器中注入SpringAOP切面类。3、registerAspectJAnnotationAutoProxyCreatorlfNecessary()注册切面类4、AnnotationAwareAspect原创 2022-03-01 19:56:59 · 653 阅读 · 1 评论 -
spring源码-aop源码介绍
SpringAOP概念和注解使用Spring 的 AOP可以在方法的之前和之后实现增强应用场景:日志、事务、安全控制、计算方法耗时时间,因为AOP可以解决我们程序上的代码冗余问题。Aop编程底层的原理动态代理技术基于Jdk实现InvocationHandler 底层使用反射技术基于CGLIB实现 字节码技术注解使用1、引入 jar 包maven引入(SpringBoot项目)<dependency> <groupId>org.springframework.b原创 2022-02-23 20:44:18 · 411 阅读 · 0 评论 -
spring源码-生命周期
spring生命周期源码分析原创 2022-02-19 17:34:08 · 445 阅读 · 0 评论 -
spring源码-注解启动分析
@Condition 条件注册 bean@Condition 来指定一定条件下注册组件对象,所有的条件必须实现 Condition 接口,重写 matches 方法,来决定组件是否注册。判断注册哪个(注册bean的配置类)@Configurationpublic class BeanConfig { @Bean(name = "bill") public Person person1(){ return new Person("Bill Gates",62);原创 2022-02-17 17:05:54 · 588 阅读 · 0 评论 -
spring源码-环境搭建
Spring框架快速入门原创 2022-02-17 11:32:15 · 724 阅读 · 0 评论