
Spring
文章平均质量分 83
Spring系列
__如风__
一切很好,不缺烦恼
展开
-
关于Springboot同时上传文件与其他参数
Springboot同时上传文件与其他参数- http请求数据传递分为请求体和请求参数。- 跟在url后面的为请求参数,文件上传和json数据放在请求体中。- 请求参数格式固定,后台可直接解析;请求体中的数据后台需要根据content-type字段按照特定格式解析。content-type只能有一种。- 文件上传的content-type是form-data,json数据的content-type为application-json。根据以上几点,一旦我们需要上传文件,只能有两种参数传递方式。1原创 2024-05-26 19:57:02 · 2105 阅读 · 2 评论 -
Jackson配置-jackson注解
Jackson相关的配置在MapperFeatrue这个枚举类中,查看源码可以发现可配置项及其默认值。原创 2023-03-30 08:27:02 · 388 阅读 · 0 评论 -
ExceptionHandlerExceptionResolver源码分析
ExceptionHandlerExceptionResolver部分属性. . .自定义WebMvcConfigSupport,不推荐,需要配置整个Mvc通过提供扩展接口参数解析器、返回值解析器、消息转换器、contentNegotiationManager,可通过MvcConfigureresponseBodyAdvice,通过ControllerAdive注解上两者都支持通过WebMvcRegistrations配置。原创 2023-03-17 14:41:50 · 215 阅读 · 0 评论 -
Java、Redis、Jackson序列化与反序列化
序列化:简单来说就是将应用程序中的数据转化为特定的格式,可以用于网络传输,保存到磁盘,数据库等。例如Java中的ObjectOutputStream、Python中的pickle是专门的序列化类、Hadoop中各节点数据传输。反序列化:将序列化对象从磁盘、网络等位置重新转化为程序中的对象信息。## 为什么需要序列化> 实现数据的跨语言使用实现数据的跨平台使用数据去内存地址降低磁盘存储空间1. 存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本。直接从磁盘、网络等位置转化为原创 2023-04-10 13:09:32 · 2278 阅读 · 0 评论 -
关于Spring的PostProcessor
本文只介绍几个重要的PostProcessor。首先要明确一点,实例化、填充属性与初始化三者的区别。原创 2023-03-13 22:10:22 · 199 阅读 · 0 评论 -
Spring Expressjion Language(SpEL)
做毕业设计的时候,系统需要记录用户的操作日志,并持久化存储。日志具体的内容大概是,记录的内容比较详细,日志的内容和动态参数有关,并且实现方式不能对业务代码有侵入性,很容易想到切面+注解的方式,但仅靠注解无法实现动态参数的记录,当时对于SpEL不太熟悉,并且操作日志的功能不在毕设要求内,只是简单地对每个接口进行了固定的日志记录,如擦操作人、时间、添加了xxx、删除了xxx等信息,后来想到SpringSecurity使用SpEL实现了动态权限的控制,那么也应该可以实现动态参数的日志记录,所以有了这篇笔记。原创 2023-03-31 08:45:33 · 258 阅读 · 0 评论 -
Spring WebSocket
注入WebSocketHandlerMapping扫描所有WebCocketConfigurer,封装WebSocketHandler为HttpRequestWebSocketHandler添加到HandlerMapping的handleMap中。原创 2023-04-03 08:44:37 · 121 阅读 · 0 评论 -
Springboot中的AOP
Springboot开发,发现同事使用切面的时候并未添加@EnableAspectJAutoProxy注解,本人产生了一些疑惑,记得当时看源码的时候,这个注解是必须加的。思索了一会,发现当时使用的是SpringAOP,并未引入Springboot,那么问题在springboot的autoconfigure上了,随后翻了下源码,解决了这个小疑惑。但是项目中引入了org.aspectj.weaver.Advice,按道理这个bean不会被注入,之后下了断点,也确实没断下来,说明这不是自动配置的地方。原创 2023-04-03 08:48:52 · 75 阅读 · 0 评论 -
SpringBoot项目配置
SpringBoot项目配置模板(个人常用)原创 2023-04-03 08:50:18 · 78 阅读 · 0 评论 -
SpringMVC执行流程,源码分析(三)-springmvc执行流程源码分析三
可以看到,一旦某个异常处理器返回了视图,后续的异常处理器都不会被调用。到此,差不多分析完成了,略过了很多异步的内容,打算单独写一篇文章分析。如果此时视图不为null,可能是未发生异常或者处理异常后返回了视图。默认有两个HandlerExceptionResolver。request的处理结果以及该请求过程中可能发生的异常。如果视图为null,那么返回的内容不是视图。在render函数中,模板引擎开始工作。至此,拦截器三个方法都被调用了。原创 2023-04-03 08:54:43 · 81 阅读 · 0 评论 -
Spring定时任务
在Spring项目中,可以非常方便地集成定时任务。定时任务功能属于Spring Integration模块。原创 2023-04-04 11:26:48 · 114 阅读 · 0 评论 -
Spring容器创建过程,源码分析-springbean的生命周期源码分析
Spring5.3.9,一个启动类,未自定义任何钩子执行的整个流程。如有任何疑问欢迎讨论!使用全注解开发,Spring在的构造函数中调用了三个方法。原创 2023-04-04 11:28:34 · 81 阅读 · 0 评论 -
spring注入Bean的方式总结
此种方式下注入的Bean默认名称为类名,本例中为myFactoryBean,获取对象为RainBow实例。日常开发中上述两种最常用。原创 2023-04-04 11:43:46 · 107 阅读 · 0 评论 -
Docker安装es8以及Springboot整合
analyzer,分词器,将文本拆分成词条,对于英文,可直接按照空格拆分,默认情况下中文会按每个字拆分,支持中文分词需要安装插件。index,索引,文档的集合,相当于关系型数据库的表(Table),包含表结构(mapping)和表配置(setting)两个选项。,按照特定的字段分组,每组均返回结果,例如搜索手机,每个品牌都想看看,按品牌字段折叠,返回每个品牌的可排序、过滤的数据。,按语义和意图检索,而不是词汇检索,基于NLP和向量检索,支持上传模型,在存储和检索时自动编码,支持混合检索。原创 2023-11-04 20:56:17 · 623 阅读 · 0 评论 -
Spring Mybatis项目多数据源配置
项目中使用到了多种数据库,需要配置多数据源,网上解决办法多种,但看来看去感觉总有点不靠谱,主要自己对于Spring如何管理事务,抽象统一接口供JPA、Mybatis整合,于是再翻了翻Mybatis和Spring事务管理的源码,调试了一次开启事务的数据库访问流程,如下代码所示。原创 2023-03-31 08:43:49 · 647 阅读 · 0 评论 -
Spring AOP
面向切面编程(Aspect-oriented Programming)功能:让关注点代码和业务代码分离面向切面编程就是指: 对很多功能都有的重复的代码抽取,再在运行的时候往业务方法上横向插入”切面代码“。传统的OOP过程通过纵向的继承方式完成代码的封装、可重用等,每一个类有对应的功能或完成指定的业务。这纵向拓展的方式解决了大部分场景的代码冗余问题,但随着业务系统的越发复杂,OOP也显出了一些弊端。原创 2023-03-31 08:44:56 · 133 阅读 · 0 评论 -
Springboot Validation 参数校验
如下为自定义枚举值校验,用于解决属性定义不是enum类型,但想约束其值为枚举类型,例如上面的gender,假如定义为Gender,那么默认只能MALE或者FEMALE,想要男、女也通过校验,可以使用该注解@Target({String message() default "错误的枚举值";Class原创 2023-04-03 08:45:29 · 309 阅读 · 0 评论 -
Springboot-devtools原理分析
springdev-tools实现开发过程中,自动重启应用程序,提供了一定的方便。使用的话,需要引入starter依赖,然后设置IDEA文件更新策略,我一般设置为切出IDEA时更新类和文件。devtools检测类路径下文件夹变化,然后通过反射调用主类的Main方法重启应用程序,实现热部署。原创 2023-04-03 08:48:58 · 1860 阅读 · 0 评论 -
SpringMVC执行流程,源码分析(一)
明确HandlerMapping、HandlerAdapter的作用和关系HandlerMapping决定请求走哪条HandlerExecutionChain,这条链中包含前置处理,HandlerAdapter适配器的Handler真正处理,后置处理。HandlerAdapter适配器模式,支持了Handler的多样性和灵活性。原创 2023-04-03 08:52:03 · 208 阅读 · 0 评论 -
SpringSecurity过滤器分析
无怪网友大多说SpringSecurity使用成本高,但是价值不大,许多功能看起来很鸡肋,添加的过滤器有点多,从一些过滤器来看,有前后端不分离时代的味道。本人配置的SpringSecurity,几乎没剩下什么了,自己写几个Filter估计也不是太难,网友诚不欺我。原创 2023-04-03 08:55:11 · 392 阅读 · 0 评论 -
Spring事务
Spring事务到此告一段落了,根本没想到会写这么多内容,从动态代理到AOP到事务传播机制、源码分析。网上的文章大多对几种事务传播机制列个表一通介绍就完事了,这些源码中都有,当时从网上寻求答案,未果,只好自己写了这篇文章了。原创 2023-04-04 11:29:18 · 153 阅读 · 0 评论 -
Spring中ApplicationContext扩展接口
ApplicationContext是一个ResourceLoader,可用于加载资源对象。Spring中的Resource是Java.net.URL类的包装。可以方便的由getResource方法从包括从类路径,文件系统,标准URL等位置加载。可以实现ResourceLoaderAware接口方便的加载资源。除此之外需要注意的一点是在开发过程中可以正常加载类路径下的资源,打成jar包之后会报错,比如以下写法,加载类路径下/img-types目录下的所有文件,开发环境正常,打包情况报错。原创 2023-04-04 11:42:55 · 182 阅读 · 0 评论