![](https://img-blog.csdnimg.cn/20190911223702367.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
spring进阶
文章平均质量分 75
小白的自我救赎
chihaihai
你懂的越多,也就懂得的越少
展开
-
springMvc---SPI实现零XML启动原理
一、SPI简介1.概念:SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。SPI的作用就是为这些被扩展的API寻找服务实现。简单来说就将接口与实现相分离,可以通过外部文件来灵活的控制接口实现。这不是本篇主要内容有个概念即可。2.实际使用场景:数据库驱动加载接口实现类的加载,JDBC加载不...原创 2020-04-06 17:34:17 · 484 阅读 · 0 评论 -
spring---自定义Filter有两种方式
文章目录前言一、基于注解二、注册bean前言在我们开发中经常需要对请求做一些自定义的过滤处理,如最常见的jwt每次请求进来我们都需要去解析判断token这个时候肯定就需要自定义一个filter去处理。spring为我们提供了两种自定义filter方式,一种是基于注解@WebFilter,一种是手动注册bean的方式。一、基于注解基于注解的方式相对步骤简单些,但是由于它的一些局限性生产中基本见不到其身影。大致只需要三步骤:1、实现Filter接口(javax.servlet)2、添加@WebF原创 2021-05-17 15:49:27 · 972 阅读 · 0 评论 -
Vue3.0+Element-Plus+SringBoot-@RequestPart注解实现上传图片并携带数据对象
文章目录前言一、前端二、后端前言最近在帮亲戚做一个餐饮管理平台,我这个三流业务前端光脚的不怕穿鞋的直接将Vue版本升级到了3.0。想开发的过程中学习适应下3.0,总体来说还是比较顺利从测试版本到现在也一年时间了市面上文档跟博客也丰富了起来。但是在设计新增菜品功能时遇到了小小的问题, 虽然也能携带参数但是并不满足我的场景需求。当时的问题是:我想同时传递图片信息和菜品数据对象给后端,而像最常用的@requestBody又只能有一个。把数据对象放到请求路径中又很不优雅,后面想到了使用@RequestPar原创 2021-05-06 23:58:56 · 2971 阅读 · 9 评论 -
springCloud---jar包@Autowired注入失败,及idea @SpringBootApplication already applies given @ComponentScan错误
文章目录前言一、配置@ComponentScan二、配置idea前言在进行微服务项目的时候,我们往往需要引入自定或者第三方的许多公共包。这时经常容易忽略的一个小问题是,我们明明在代码中加了@compoent等bean注入注解,但是项目运行时会报错提示找不到该bean。原因很简单在我们没有配置@ComponentScan时spring会默认从根目录下进行扫描,但是我们引入的jar包并不在当前项目下。就会导致spring无法帮我们自动扫描注入,这可能也是一直做单体项目养成的坏习惯。一、配置@Compo原创 2021-04-01 18:07:13 · 2399 阅读 · 1 评论 -
spring---自定义spring-boot-starter
在我们的日常开发工作中,经常会有一些独立于业务之外的common模块,特别是现在微服务框架,我们一个项目分成了多个单体项目,而这些单体项目中会引用公司的一些组件,这个时候我们定义Starter,可以使这些单体项目快速搭起,我们只需要关注业务开发。复用的时候只需要将其在pom中引用依赖即可,SpringBoot会为我们完成自动装配,使用起来十分便捷。命名规范:官方命名空间前缀:“spring-boot-starter-”模式:spring-boot-starter-模块名举例:spring-bo原创 2020-05-11 20:24:42 · 322 阅读 · 0 评论 -
spring---单例Bean循环依赖
而B中注入的A需要加代理(aop),但是加代理的逻辑在注入属性之后,也就是A的生命周期到注入属性的时候A还不是一个代理对象,那么这个时候把A存起来,然后注入B,获取、创建B,B注入A,获取A;首先把一个能产生A的工厂存起来,然后注入B,注入B的时候获取、创建B,B注入A,获取A,先从三级缓存获取,为null,然后从二级缓存拿到一个工厂,调用工厂的getObject();在为A进行属性注入的时候必须要B,此时我们去获取B的时候就会进行创建从这里开始就需要再次重复上面A创建的的过程。原创 2020-04-21 22:21:16 · 794 阅读 · 0 评论 -
spring---ApplicationContextAware原理详解
在项目中大家都知道通过实现ApplicationContextAware接口可以获得ApplicationContext里的所有信息,从而拿到我们想要的Bean。但是对其中的具体过程一直不太明白,找了很多文章大多数也只是说明了怎么用的问题。俗话说前人栽树后人乘凉,找不到栽树的人,只能自己硬着头皮上了。奥利给!ApplicationCon...原创 2020-03-20 00:17:09 · 1186 阅读 · 1 评论 -
springMvc---RequestContextHolder分析
之前做JWT的时候,在为Authentication注入HttpServletRequest对象时遇到问题,想要获取到当前HttpServletRequest对象但是又不想在逻辑代码中通过参数传入。在看前辈代码时发现了下面这段代码当时很陌生 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder....原创 2020-03-13 02:45:44 · 387 阅读 · 0 评论 -
springWeb---OncePerRequestFilter抽象类
作用:OncePerRequestFilter抽象类最主要的作用就是保证一次请求只通过一次filter,而不需要重复执行。从下图也可以看到在spring的filter中都继承了OncePerRequestFilter,为什么要这么做呢?场景:通过官方英文注释可以找到一些解释,这个抽象类的出现是为了兼容不同的web容器。因为在不同的servlet版本中,执行过程也不同。例如:在Servle...原创 2020-03-11 18:38:12 · 1316 阅读 · 0 评论 -
spring---InitializingBean接口源码分析
作用:实现了InitializingBean接口的类,可以在该类被注入到spring容器时达到 某些属性先装配完成后,再去装配另一些属性 的能力。而initMethod和@PostConstruct也可以达到相同的目的。...原创 2020-03-09 02:05:36 · 463 阅读 · 0 评论 -
Spring---IOC容器
前段时间看到面试题问到Spring bean的生命周期,一脸黑线。拒绝做api调用工程师可能就得从这些底层的原理开始。离开实习了一年的公司就是为了有机会去大厂接触更深层次的技术,提升自己价值。MMP结果应届毕业生的我不能参加校招,投简历动不动都是3-5年,5-10年。对不起弟弟我们不要一年的。。。。心痛。今日吐槽就到这里。准备研究spring源码前你可能先需要到github上拉一份spring...原创 2019-09-12 00:27:27 · 373 阅读 · 0 评论