Spring
文章平均质量分 70
thewindkee
这个作者很懒,什么都没留下…
展开
-
SpringMVC请求调用流程简介
【代码】SpringMVC请求调用流程简介。原创 2022-10-16 01:12:39 · 889 阅读 · 0 评论 -
SpringBoot测试用例对资源文件的加载
背景在运行测试用例的时候,test目录下未配置application.properties,但加载到了 非test/java下的application.properties。跟踪代码关键代码org.springframework.boot.context.config.ConfigFileApplicationListener.Loader#load启动的时候,classpath会指定到main/java下面的代码。运行测试用例的时候,加载到了非test路径下的resource:applic原创 2021-08-20 10:55:28 · 499 阅读 · 0 评论 -
使用mybatis-plus的分页拦截器(PaginationInterceptor)分页失败
背景项目中使用到了mybatis-plus的3.0.5版本,分页拦截器是PaginationInterceptor。代码如下: @Transactional(readOnly = true) public void test() { int current =1; while (true) { final LambdaQueryWrapper<Foo> query = Condition.<Foo>lambda原创 2021-03-16 01:28:58 · 6694 阅读 · 0 评论 -
MapperScannerConfigurer导致PlaceHolder的替换变量报错
前提1.开启了byName自动注入2.定义了PropertySourcesPlaceholderConfigurer,去解析配置。3.含有id="sqlSessionFactory"的SqlSessionFactory4.定义了MapperScannerConfigurer,在其属性sqlSessionFactory中的dataSource属性中使用了${username}、${password}等。原因MapperScannerConfigurer 是一个BeanDefinitionReg原创 2020-06-28 22:33:24 · 362 阅读 · 0 评论 -
Spring中怎么解决循环依赖?
前文在写Spring之getBean的时候提到过在这个过程中要解决循环依赖。什么是循环依赖?A类依赖B类,B类依赖A类。 这就是循环依赖。如下就是一段在Spring中会造成循环依赖的代码@Componentpublic class A { private B b; @Autowired public A(B b) { this.b = b;...原创 2020-03-29 21:28:44 · 1249 阅读 · 0 评论 -
Spring是怎么创建一个Bean的?
finishBeanFactoryInitialization原创 2020-02-12 13:31:38 · 2869 阅读 · 1 评论 -
Spring之NamespaceHandler与BeanDefinitionParser
1.前文由Spring启动过程之-obtainFreshBeanFactory() 可以看到NamespaceHandler、BeanDefinitionParser为解析配置文件中的Element起重要作用。那么它本身是如何被加载的呢?2.NamespaceHandler之ContextNamespaceHandler常见的NamespaceHandler实例:ContextNamespa...原创 2020-01-20 19:14:41 · 1041 阅读 · 0 评论 -
Spring之启动过程obtainFreshBeanFactory()
1.refresh流程我们知道refresh是spring启动的关键方法,refresh启动过程中,先要得到beanFactory 以及 需要交给beanFactory管理的bean。在refresh时,prepareRefresh后,马上就调用了obtainFreshBeanFactory创建beanFactory以及扫描bean信息(beanDefinition),并通过BeanDefin...原创 2020-01-20 17:43:32 · 1822 阅读 · 3 评论 -
SpringAop时Null return value from advice does not match primitive return type for: public int...异常
原因接口是返回基本类型(primitive),切面拦截后返回了null。Null return value from advice does not match primitive return type for: public int …模拟proceed异常后,obj将是null。这里手动处理了null值,避免更优雅的方式1接口使用包装类而不是基本类型。更优雅的方式2避免在...原创 2019-08-13 15:12:40 · 15270 阅读 · 1 评论 -
注释驱动的 Spring cache 缓存介绍
概述Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Exp...转载 2017-05-03 15:19:58 · 375 阅读 · 0 评论 -
记录一次@Around使用不正确造成的StackOverflowError
同事发了一个底层服务后。我负责的某个上层服务突然挂了,有点慌,马上查看上层服务的日志。查看日志特别长。没找到从哪儿报的。 跳到最上开始找,结果: StackOverflowError。就想到了递归调用。随即找到相关代码一看: 由于doSomething方法也被@Around拦截,因此,一旦service下某个方法被拦截进入doAround,就会调用other.doSom...原创 2019-02-20 09:44:38 · 515 阅读 · 0 评论 -
SpringIOC源码学习总结
使用AnnotationConfigApplicationContext app = new AnnotationConfigApplicationContext(MyConfig.class);初始化容器后,关注refresh()方法。 之后关注registerBeanPostProcessors();与finishBeanFactoryInitialization(beanFactory);,...原创 2019-01-03 14:48:50 · 458 阅读 · 0 评论 -
SpringAOP源码学习总结
1.使用@EnableAspectJAutoProxy启用aop2.创建abstractAutoProxyCreator使用@EnableAspectJAutoProxy后, 可以看到会@Import(AspectJAutoProxyRegistrar.class)初始化Spring容器的时候会在registerBeanPostProcessors() 遍历实现ordered接口的bean...原创 2019-01-03 14:09:03 · 319 阅读 · 0 评论 -
Spring总结以及在面试中的一些问题.
[Java面试五]Spring总结以及在面试中的一些问题.转自:http://www.cnblogs.com/wang-meng/p/5701982.html1.谈谈你对spring IOC和DI的理解,它们有什么区别?IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建U...转载 2019-01-04 14:48:19 · 182 阅读 · 0 评论 -
【Spring】使用Spring的AbstractRoutingDataSource实现多数据源切换
【转自】:http://www.jianshu.com/p/a042ff2ee2ae最近因为项目需要在做两个项目间数据同步的需求,具体是项目1的数据通过消息队列同步到项目2中,因为这个更新操作还涉及到更新多个库的数据,所以就需要多数据源切换的操作。下面就讲讲在Spring中如何进行数据源切换。这里是使用AbstractRoutingDataSource类来完成具体的操作,Abstrac转载 2017-10-13 14:43:15 · 290 阅读 · 0 评论 -
【第五章】Spring表达式语言 之 5.3 SpEL语法 ——跟我学spring3
5.3 SpEL语法5.3.1 基本表达式一、字面量表达式:SpEL支持的字面量包括:字符串、数字类型(int、long、float、double)、布尔类型、null类型。 类型 示例 字符串 String str1 = parser.parseExpression("'Hello World!'")....转载 2017-04-01 11:32:49 · 687 阅读 · 0 评论