Spring
nickyyu
这个作者很懒,什么都没留下…
展开
-
AbstractTestNGSpringContextTests单元测试坑点
测试类继承AbstractTestNGSpringContextTests进行spring单元测试时1、依赖注入类需指定接口类,不能指定具体实现类,否则会出现找不到依赖类,导致注入失败。原创 2021-07-13 16:21:33 · 1304 阅读 · 1 评论 -
如何读取Spring管理的propeties配置文件信息
应用程序在使用XML方式集成Spring的时候,会使用<context:property-placeholder location="conf.properties" />配置让Spring对properties文件进行管理。有时候需要动态的获取properties文件参数配置信息,可以参照以下方式:PropertySourcesPlaceholderConfigurer bea...原创 2020-05-02 16:12:02 · 240 阅读 · 0 评论 -
@Contextconfiguration的使用
使用spring做单元测试的时候,如果遇到需要加载绝对路径,需要使用file:协议原创 2020-03-22 21:12:25 · 1133 阅读 · 0 评论 -
spring源码解析-切面通知执行顺序
应用开发过程中,针对同一个目标对象,可能会需要配置一个或多个切面进行AOP增强。只有一个切面的情况下,各个通知的执行顺序如下:@Around>@Before>@After>@AfterReturning>@AfterThrowing配置多个切面的情况下,需要为切面类继承Ordered接口或配置@Order注解手动定义两个切面的顺序大小,值越小越先执行相关排序...原创 2020-03-22 14:07:34 · 626 阅读 · 0 评论 -
Spring源码分析-AOP之JDK动态代理实现
0X01 前提条件基于XML配置加载beanSpring V4.0.8.RELEASEbean为单例模式基于JDK动态代理实现,Cglib暂且不表,其实两者大致流程差不多,只不过在生成具体代理对象的时候会有点差异0X02 实现方法 要了解AOP的原理需要将AnnotationAwareAspectJAutoProxyCreator,bean的创建和bean的方法调用三者联系起来。...原创 2020-03-21 20:42:33 · 247 阅读 · 0 评论 -
spring源码解析-单例Bean循环依赖解决方法
0X01、前提条件bean为单例模式,其他模式暂且不表。Bean工厂支持循环依赖即allowCircularReferences=true,这是它的默认值 。0X02、解决方法1、 bean工厂在创建bean之前会尝试从缓存中拿到bean,bean工厂中定义了三级缓存:singletonObjects:一级缓存earlySingletonObjects:二级缓存singl...原创 2020-03-20 17:44:50 · 209 阅读 · 0 评论 -
Spring源码解析-Bean创建大体流程
1、环境要求Spring V4.0.8.RELEASE基于XML配置方式加载Bean2、创建流程原创 2020-03-19 22:14:27 · 120 阅读 · 0 评论 -
Spring源码解析-BeanName生成方法
1、环境要求Spring V4.0.8.RELEASE基于XML配置方式加载Bean2、BeanName生成方法spring优先将标签的id属性值作为beanName,没有配置id则将name属性值第一个元素作为beanName。下面代码片段摘自BeanDefinitionParserDelegate的parseBeanDefinitionElement方法String id...原创 2020-03-19 11:42:59 · 276 阅读 · 0 评论 -
Spring源码解析-XmlWebApplicationContext如何定位配置文件
一般web应用会在web.xml添加以下spring配置信息 <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value></co...原创 2020-03-14 12:01:41 · 229 阅读 · 0 评论 -
Spring源码解析-SpringMVC如何处理请求
1、对当前请求信息做线程绑定RequestContextHolder.setRequestAttributes(requestAttributes, this.threadContextInheritable);2、为当前请求找到匹配的handlermappedHandler = getHandler(processedRequest);3、根据handler找到匹配的handlerA...原创 2020-03-13 16:51:03 · 115 阅读 · 0 评论