SpringFramework
sodawoods
LETSGETIT
展开
-
curl请求MultipartHttpServletRequest
Web服务器允许用户利用multipart请求,将本地文件上传到服务器。SpringMVC通过对ServletAPI的HttpServletRequest接口进行扩展,从而实现文件上传。Spring提供的接口是org.springframework.web.multipart.MultipartRequest,通过MultipartRequest#getFile方法,可以获取到用户上传的文件。一段代码@PostMapping("/upload")@ResponseBodypublic String原创 2021-04-18 20:51:49 · 512 阅读 · 0 评论 -
坑:@EnableScheduling你用对了吗?
我们可能会在服务中增加一些定时任务,这时候可能就会用到Spring中的@EnableScheduling,例如下面的代码。Main类中启动SpringFramework的IoC容器。package com.woods.schedule;import java.util.concurrent.TimeUnit;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/** * @auth原创 2021-02-02 20:20:54 · 1255 阅读 · 2 评论 -
SpringFramework:加与不加@Configuration的区别
1 不加@Configuration注解情况1两个POJO类A和B,注意A和B都没有标注@Component等注解。配置类App,注意App类并没有标注任何注解。App内部使用@Bean注解标注了两个方法generateA和generateB。主类Main,我们创建IOC容器时将App.class作为参数传入。package com.woods.configuration_test;/** * @author woods * Created on 2020-08-04 */publi原创 2020-09-12 10:15:07 · 715 阅读 · 0 评论 -
Spring的扩展点3:监听器机制
自定义ApplicationEventListener自定义ApplicationEventListener的两种方式:实现ApplicationListener接口使用@EventListener注解package com.woods.listener;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration原创 2020-07-29 00:08:04 · 281 阅读 · 0 评论 -
SpringFramework源码分析(6):循环依赖的实现
import javax.annotation.PostConstruct;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.stereotype.C原创 2020-07-25 17:47:36 · 117 阅读 · 0 评论 -
SpringFramework源码分析(5):AOP的使用与实现
本篇文章介绍下SpringAOP的用法以及源码分析。1 SpringAOP使用示例我们定义四个类MathCalculator是业务类,我们希望在divide方法运行前后、正常返回或者抛异常时,打印一些日志。LogAspect是切面类,我们在LogAspect上标注了@Aspect注解,表示这是一个切面。在类中,我们使用@Pointcut定义了一个切点,使用@Before定义了前置通知、@After定义了后置通知、@AfterReturning定义了返回通知、@AfterThrowing定义了异常通原创 2020-07-20 00:23:43 · 166 阅读 · 1 评论 -
SpringFramework系列介绍
SpringFramework系列基于SpringFramework5.2.7版本。系列专题创建IoC容器1:Spring中核心组件介绍创建IoC容器2:基于AnnotationConfigApplicationContext的SpringIoC容器创建概览创建IoC容器3:类扫描创建IoC容器4:单实例Bean的创建Spring的扩展点1:BeanPostProcessorSpring的扩展点2:BeanFactoryPostProcessorSpring的扩展点3:ListenerS原创 2020-07-19 11:33:20 · 325 阅读 · 0 评论 -
SpringFramework源码分析(4):finishBeanFactoryInitialization方法详解
在SpringFramework源码分析(2):IoC容器AnnotationConfigApplicationContext的创建中,我们分析了SpringIoC容器创建的源码。我们已经知道在AbstractApplicationContext的refresh方法里,通过invokeBeanFactoryPostProcessors(beanFactory)完成了类的扫描,将类转化成了BeanDefinition并存储在了DefaultListableBeanFactory的beanDefinitionM原创 2020-07-18 00:26:43 · 222 阅读 · 0 评论 -
SpringFramework源码分析(3):invokeBeanFactoryPostProcessors方法与ConfigurationClassPostProcessor详解
我们在SpringFramework源码分析(2):IoC容器AnnotationConfigApplicationContext的创建中分析了AnnotationConfigApplicationContext初始化的代码。AnnotationConfigApplicationContext初始化的过程中,在AbstractApplicationContext#refresh()方法里,有一行代码invokeBeanFactoryPostProcessors(beanFactory),这行代码的主要执行用原创 2020-07-17 00:00:07 · 150 阅读 · 0 评论 -
SpringFramework源码分析(2):IoC容器AnnotationConfigApplicationContext的创建
1 一点建议我们在看源码的时候,不应该上来直接就开始读,在对作者的设计意图没有一丁点了解的情况下读源码,就是个从入门到放弃的过程,读完了也不知道到底在干嘛。这里给出一点个人的建议,在阅读源码前,我们需要先弄清楚一个组件或框架的整体流程是什么样子的,如果让我们来实现同样的功能,我们该如何思考以及从哪里下手。读Spring源码前,可以先看下Spring中重要的类有哪些,先有个大体概念与印象,可参考https://blog.csdn.net/sodawoods/article/details/107240123原创 2020-07-16 00:04:44 · 189 阅读 · 0 评论 -
SpringFramework源码分析(1):Spring容器中的核心组件与层次
Spring的IoC容器Spring的IoC容器是Spring的核心,IOC(Inversion of Control )控制反转的。IoC和DI(Dependency Injection)是一个意思,也就是说对象定义它们的依赖(也就是和它们一起干活的其他对象),Spring容器会把这些依赖给注入进去。具体来讲,我们可以通过xml文件、注解和java代码的形式来定义对象和它们之间的依赖,Spring会自动帮我们解析这些Bean和BeanDefinition首先需要了解一下什么是Bean、BeanDef原创 2020-07-12 11:44:35 · 225 阅读 · 0 评论