前言 开心一刻 那年去相亲,地点在饭店里,威特先上了两杯水,男方绅士的喝了一口,咧嘴咋舌轻放桌面,手抚额头闭眼一脸陶醉,白水硬是喝出了82年拉菲的感觉.如此有生活情调的幽默男人,果断拿下,相处后却发现他比较木讷,问他为什么那天喝水那么有趣,他仰头道:鬼知道那杯水怎么那么烫啊! 是什么 FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译 /** * 实现此接口的bean不能用作普通bean.此bean暴露的对象是通过getObject()创建的对象,而不是它自身 */…
更多文章点击--spring源码分析系列 主要分析内容: 一.InstantiationAwareBeanPostProcessor简述与demo示例 二.InstantiationAwareBeanPostProcessor与BeanPostProcessor对比 三.InstantiationAwareBeanPostProcessor源码分析:注册时机和触发点 (源码基于spring 5.1.3.RELEASE分析) 一.InstantiationAwareBeanPostProcesso…
Spring更多分析--spring源码分析系列 主要分析内容: 一.BeanPostProcessor简述与demo示例 二.BeanPostProcessor源码分析:注册时机和触发点 (源码基于spring 5.1.3.RELEASE分析) 一.BeanPostProcessor简述与demo示例 BeanPostProcessor是spring非常重要的拓展接口,例如aop通过拓展接口生产代理bean等.接口有两个方法: /** * Factory hook that allows fo…
更多文章点击--spring源码分析系列 主要分析内容: 一.BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor简述与demo示例二.BeanFactoryPostProcessor源码分析:注册时机和触发点 (源码基于spring 5.1.3.RELEASE分析) 一.BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor简述与demo示例 1.BeanFac…
前言 开心一刻 一只被二哈带偏了的柴犬,我只想弄死隔壁的二哈 what:是什么 BeanFactoryPostProcessor接口很简单,只包含一个方法 /** * 通过BeanFactoryPostProcessor,我们自定义修改应用程序上下文中的bean定义 * * 应用上下文能够在所有的bean定义中自动检测出BeanFactoryPostProcessor bean, * 并在任何其他bean创建之前应用这些BeanFactoryPostProcessor bean * * Bean…
前言 开心一刻 小明:“妈,我被公司开除了”,妈:“啊,为什么呀?”, 小明:“我骂董事长是笨蛋,公司召开高层会议还要起诉我”,妈:“告你诽谤是吧?”,小明:“不是,他们说要告我泄露公司机密” BeanPostProcessor定义 不管三七二十一,我们先来看看它的定义,看看spring是如何描述BeanPostProcessor的 /* * Copyright 2002-2016 the original author or authors. * * Licensed under the Ap…
目录 一.BeanFactory接口 二.FactoryBean接口 1.简单实现 2.增强实现 3.FactoryBean的实际使用案例 三.总结 @   Spring框架中的BeanFactory接口和FactoryBean接口因为名称相似,老是容易搞混淆,而且也是面试过程中经常会碰到的一个问题.所以本文就专门给大家整理出来. 一.BeanFactory接口   BeanFactory接口是Spring容器的核心接口,负责:实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.   Sp…
作者:江南白衣 原文地址: http://www.blogjava.net/calvin/archive/2005/08/30/11099.html http://www.blogjava.net/calvin/archive/2005/08/26/11243.html DreamHead在<思考微内核>十分激赏 Spring的微内核与扩展机制:“Spring的微内核在哪里呢?便是DI容器.而通过FactoryBean,我们可以定制自己的组件组装过程,对一个普通的JavaBean做手脚,像Sp…
概述: BeanPostProcessor接口是众多Spring提供给开发者的bean生命周期内自定义逻辑拓展接口中的一个,其他还有类似InitializingBean,DisposableBean,BeanFactoryAware等. 实现了BeanPostProcessor接口的Bean我们叫做后处理器. BeanPostProcessor接口定义如下: <span style="font-size:14px;">public interface BeanPostPro…
一.CXF整合Spring实现接口发布 发布过程如下: 1.引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.7.18</version> </dependency> <de…
本文完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/factorybean FactoryBean和BeanFactory由于在命名上极其相似,所以一直以来困扰了不少的开发者. BeanFactory,耳熟能详的Spring核心接口,提供IoC容器的最基本功能.但要解释FactoryBean一句话可能就说不清楚了.我们将从下面的例子逐步说明,FactoryBean是什么,它提供了什么样的…
在Spring中有BeanFactory和FactoryBean这2个接口,从名字来看很相似,比较容易搞混. 一.BeanFactory BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean().containsBean()等管理Bean的通用方法.Spring的容器都是它的具体实现如: DefaultListableBeanFactory XmlBeanFactory ApplicationContext 这些实现类又从…
1.配置bean的方式 配置bean有三种方式:通过全类名(class反射).通过工厂方法(静态工厂&实例工厂).通过FactoryBean.前面我们已经一起学习过全类名方式和工厂方法方式,下面通过这篇文章来学习一下FactroyBean. 2.FactoryBean配置bean FactoryBean是Spring给我们提供的一个接口,我们来看一下这个接口的源码: public interface FactoryBean<T> { @Nullable T getObject() th…
一.BeanFactory BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean().containsBean()等管理Bean的通用方法.Spring的容器都是它的具体实现如: DefaultListableBeanFactory XmlBeanFactory ApplicationContext 这些实现类又从不同的维度分别有不同的扩展. 1.1.源码 public interface BeanFactory { //…
一个工作了六年多的粉丝,胸有成竹的去京东面试. 然后被Spring里面的一个问题卡住,唉,我和他说,6年啦,Spring都没搞明白? 那怎么去让面试官给你通过呢? 这个问题是: Spring中BeanFactory和FactoryBean的区别. 好吧,对于这个问题看看普通人和高手的回答. 普通人: 嗯.......... 高手: 关于这个问题,我从几个方面来回答. 首先,Spring 里面的核心功能是IOC容器,所谓IOC容器呢,本质上就是一个Bean的容器或者是一个Bean的工厂. 它能够根…
Java接口在使用过程中有两点规定: 1.接口中只能有定义方法名.方法返回类型,不能有方法的实现. 2.实现接口的类,必须实现接口中所有的方法. 例如下面的例子: //定义接口 public interface Action { //接口中的方法定义,只能定义返回类型.方法名称 String say(); } //接口的实现 public class ActionImpl implements Action { @Override public String say() { return "He…
关于Spring InitializingBean 接口以及Aware接口实现的其实都在 第11步中: finishBeanFactoryInitialization() 方法中完成了3部分的内容: 1.完成对单例的非懒加载的bean 进行初始化 2.对于InitializingBean 接口 spring 会自动调用它的 afterPropertiesSet方法: 3.还进行了对实现了Aware 接口实现的调用 多说无益,我们来看一看,它是怎么完成初始化,以及接口的调用: a:  第一步肯定是…
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 spring boot 连接Mysql spring boot配置druid连接池连接mysql spring boot集成mybatis(1) spring boot集成mybatis(2) – 使用pagehelper实现分页 spring boot集成mybatis(3) – mybatis ge…
1. 前言 通常我们编写 Spring MVC 接口的范式是这样的: @RestController @RequestMapping("/v1/userinfo") public class UserInfoController { @GetMapping("/foo") public String foo() { return "felord.cn"; } } 这种我都写吐了,今天换个口味,使用 Spring 5 新引入的函数式端点(Funct…
1. 前言 在Java开发中接触的开发者大多数不太注重对接口的测试,结果在联调对接中出现各种问题.也有的使用Postman等工具进行测试,虽然在使用上没有什么问题,如果接口增加了权限测试起来就比较恶心了.所以建议在单元测试中测试接口,保证在交付前先自测接口的健壮性.今天就来分享一下胖哥在开发中是如何对Spring MVC接口进行测试的. 在开始前请务必确认添加了Spring Boot Test相关的组件,在最新的版本中应该包含以下依赖: <dependency> <groupId>…
目录 前言 SpringBoot 示例 SpringBoot pom.xml SpringBoot application.yml SpringBoot IndexController SpringBoot HelloController SpringBoot 集成 Spring Security Spring Security 使用 HttpBasic 认证 Spring Security 自定义用户名和密码 UserDetails In Memory JDBC Spring Security…
优雅哥 SpringBoot 2.7.2 实战基础 - 04 -集成 Spring Doc 接口文档和 knife4j 前面已经集成 MyBatis Plus.Druid 数据源,开发了 5 个接口.在测试这 5 个接口时使用了 HTTP Client 或 PostMan,无论是啥都比较麻烦:得自己写请求地址 URL.请求参数等,于是多年前就出现了 Swagger 这个玩意.Swagger 可以自动生成接口文档,还能很方便的测试各个接口.但不幸的是,MVN Repository 上面 Sprin…
spring自带的缓存类有两个基础类:Cache(org.springframework.cache.Cache)类,CacheManager(org.springframework.cache.CacheManager)类: 一(核心): Cache类:定义了缓存常用的操作: CacheManager类:spring 核心的缓存管理类,spring通过接口CacheManager来管理Cache(缓存): 二: ConcurrentMapCacheFactoryBean(org.springf…
原文地址:Spring与Mybatis整合的MapperScannerConfigurer处理过程源码分析 前言 本文将分析mybatis与spring整合的MapperScannerConfigurer的底层原理,之前已经分析过java中实现动态,可以使用jdk自带api和cglib第三方库生成动态代理.本文分析的mybatis版本3.2.7,mybatis-spring版本1.2.2. MapperScannerConfigurer介绍 MapperScannerConfigurer是spr…
Spring PropertyResolver 占位符解析(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring 3.1 提供了新的占位符解析器 PropertyResolver,默认实现为 PropertySourcesPropertyResolver.相关文章如下: Spring PropertyResolver 占位符解析(一)API 介绍 Spring PropertyResolver 占…
使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring Boot命令行参数相关的功能及相关源码分析. 命令行参数使用 启动Spring Boot项目时,我们可以通过如下方式传递参数: java -jar xxx.jar --server.port=8081 默认情况下Spring Boot使用8080端口,通过上述参数将其修改为8081端口,而且通过命令…
一.自动装配 1.根据自动装配原理(详见:Spring Boot系列(二):Spring Boot自动装配原理解析),找到spring-cloud-netflix-eureka-client.jar的spring.factories,查看spring.factories如下: 2.进入EurekaClient的自动装配类EurekaClientAutoConfiguration: 3.@ConditionalOnBean(EurekaDiscoveryClientConfiguration.Ma…
spring boot 加载web容器tomcat流程源码分析 我本地的springboot版本是2.5.1,后面的分析都是基于这个版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.1</version> <relativePa…
最近公司涉及到微信绑定用户,做了高级接口-申请带参数的二维码,总结了下微信开发接口.微信接口开发都是除了消息用的xml 回复基本上都是用json的形式传递信息(post/get),开发的方法基本都是一样的,以下以高级接口获取带参数的二维码为例,怎么做微信接口开发. 第一步:获取access_token,access_token是获取其他接口信息的钥匙,所有接口都需要调用access_token /// <summary> /// 拉取AccessToken,微信每天公共2000次AccessT…
本文是数字麦克风笔记文章的单片机程序.一些朋友私信我,调试出问题. 我就把源码贴出来吧,可能主要问题是DMA的配置. 尤其双DMA时候,需要手动启动I2S的接收DMA,HAL库没有这个接口,不看datasheet是找不到这个毛病的,这也是HAL库用多了引起的问题,一些特底层的问题大家都不愿意去搞了. /* USER CODE BEGIN Header */ /** ******************************************************************…