spring boot注解如何实现(Spring Boot源码-@EnableConfigurationProperties @ConfigurationProperties注解配置原理)

2024-06-27 00:13:28 8

spring boot注解如何实现(Spring Boot源码-@EnableConfigurationProperties @ConfigurationProperties注解配置原理)

本文目录

Spring Boot源码-@EnableConfigurationProperties @ConfigurationProperties注解配置原理

1 概述 2 实例 3 配置注入实现原理 使用过Spring Boot的都会知道,我们可以在application.properties文件中进行一系列的配置,该配置会被自动注入到我们需要使用的bean中,下面我们就介绍配置注入的实现原理。 首先,要知道在application.properties中的配置是通过 BeanPostProcessor 进行注入的,具体完成该功能的 BeanPostProcessor 实现类是 ConfigurationPropertiesBindingPostProcessor 。 本文接下来会介绍 ConfigurationPropertiesBindingPostProcessor 是在何时被加入到beanfactory中的,以及 @EnableConfigurationProperties 、 @ConfigurationProperties 注解的实现原理。 Spring Boot自动配置中充斥着大量使用通过application.properties进行扩展配置的实现,比如我们熟悉的 MybatisAutoConfiguration : 下面我们在看下 MybatisProperties 类的定义: 通过如上的注解,MyBatis就可以获得我们在application.properties中的配置了,比如如下配置: 要了解配置注入的实现原理,首先要找到上文介绍到的 ConfigurationPropertiesBindingPostProcessor 是何时被注册到beanfactory中的,通过阅读源码发现,在spring.factories文件中有如下一行: 可见,是通过 @EnableAutoConfiguration 注解引入了相关的配置, @EnableAutoConfiguration 通过 @Import 注解自动配置的原理这里不再介绍。我们看下 ConfigurationPropertiesAutoConfiguration 类的实现: 首先 ConfigurationPropertiesAutoConfiguration 被 @Configuration 注解,因此会在beanfactory加载时被作为配置类处理,具体在 ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry 调用 ConfigurationClassParser.parse 进行处理。 我们再看 @EnableConfigurationProperties 定义: @EnableConfigurationProperties 通过 @Import(EnableConfigurationPropertiesImportSelector.class) 向容器中注入了相关的处理类, @Import 也是在 ConfigurationClassParser.parse 进行处理的。 EnableConfigurationPropertiesImportSelector 类定义如下: 好了,到这里,我们已经知道注解@ EnableConfigurationProperties.value 中指定的配置类是如何被注入到beanfactory中的了,那么注解 EnableConfigurationProperties.value 中指定的配置类中的属性是如何从application.properties被注入的呢?比如上面的 对应配置如下: 这就是我们前面提到的 BeanPostProcessor 接口实现类 ConfigurationPropertiesBindingPostProcessor 类处理的,而 ConfigurationPropertiesBindingPostProcessor 则是通过上面 EnableConfigurationPropertiesImportSelector 中使用类 ConfigurationPropertiesBindingPostProcessorRegistrar 进行注册的: ConfigurationPropertiesBindingPostProcessor 是接口 BeanPostProcessor 的实现,会被 ApplicationContext 检测出来,在实例化每个bean时会被调用进行扩展处理。

SpringBoot Starter自定义注解 - 接口加解密

目标

本章我们将编写一个starter,目标如下:

1、对外提供 @OpenAPI 注解,使用此注解它会对接收的请求数据进行解密,对要返回的数据进行加密。

2、完成服务端使用示例

3、完成前端调用示例

加密规则

1、对业务数据进行AES加密,示意代码:encryptData=AES("业务数据", aesKey)

2、对AES的key进行公钥加密,示意代码:encryptKey=RSA(aesKey, 公钥)

3、签名sign=md5(encryptData+encryptKey)

加密后请求示例

Content-Type: application/x-www-form-urlencoded;charset=UTF-8

请求参数

服务端返回示例

pom.xml

定义注解

配置公私钥

具体代码逻辑

定义切面和自动装配

spring.factories

服务端修改

在业务项目中引入jar 包

配置公私钥

改动的地方很少,只需要在原接口增加@OpenAPI注解即可

前端修改

修改前代码

修改后要先对参数加密,然后对返回数据解密

安装两个加密库

封装RSA、AES和Base64加解密

SpringBoot:如何书写一个自定义的Enable*注解

1.新建自定义的注解 2.应用此注解到配置类 3.这时候需要在EnableCustomFeature 类中通过@Import的方式引入一系列需要前置处理的Bean类 上述通过@Import方式做的原因,主要是将@Import标记的配置类中的bean作为ApplicationContext处理 使用Selector选择器启用Enable 自定义注解 示例如下: 上述示例中,自定义的注解中有一个criteria自定义注解属性字段,默认值为default,后面我们需要做的就是根据criteria的值激活两种不同的bean功能集合: 所以如果criteria字段值为 "default",就会加载SomeBeanConfigurationDefault, 否则就是加载SomeBeanConfigurationType1。 ***隐藏网址***

spring boot注解如何实现(Spring Boot源码-@EnableConfigurationProperties @ConfigurationProperties注解配置原理)

本文编辑:admin

本文相关文章:


怎么设置网站(iis怎么配置网站)

怎么设置网站(iis怎么配置网站)

大家好,如果您还对怎么设置网站不太了解,没有关系,今天就由本站为大家分享怎么设置网站的知识,包括iis怎么配置网站的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录iis怎么配置网站网页的站点怎么设要怎么设置才能让电

2024年9月29日 11:05

持续集成与持续部署实践 pdf(如何在 linux 上配置持续集成服务)

持续集成与持续部署实践 pdf(如何在 linux 上配置持续集成服务)

“持续集成与持续部署实践 pdf”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看持续集成与持续部署实践 pdf(如何在 linux 上配置持续集成服务)!本文目录如何在 linux 上配置持续集成服务coding持续集成之自

2024年9月29日 02:55

service network restart重启失败(在虚拟机安装的centos6.2,运行service network restart 时总是failed,eth0配置如图..错在哪里)

service network restart重启失败(在虚拟机安装的centos6.2,运行service network restart 时总是failed,eth0配置如图..错在哪里)

其实service network restart重启失败的问题并不复杂,但是又很多的朋友都不太了解在虚拟机安装的centos6.2,运行service network restart 时总是failed,eth0配置如图..错在哪里,因此

2024年9月26日 18:45

datasource health check failed(java中运行时出现下面的错误是什么原因呢其中有配置spring)

datasource health check failed(java中运行时出现下面的错误是什么原因呢其中有配置spring)

其实datasource health check failed的问题并不复杂,但是又很多的朋友都不太了解java中运行时出现下面的错误是什么原因呢其中有配置spring,因此呢,今天小编就来为大家分享datasource health c

2024年9月26日 04:16

phpstorm配置xdebug(如何在xampp环境下配置phpstrom xdebug)

phpstorm配置xdebug(如何在xampp环境下配置phpstrom xdebug)

这篇文章给大家聊聊关于phpstorm配置xdebug,以及如何在xampp环境下配置phpstrom xdebug对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录如何在xampp环境下配置phpstrom xdebugphp

2024年9月10日 02:30

oracle11g 数据库创建失败(oracle 11g_r2 创建数据库时 Enterprise Manager 配置失败)

oracle11g 数据库创建失败(oracle 11g_r2 创建数据库时 Enterprise Manager 配置失败)

“oracle11g 数据库创建失败”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看oracle11g 数据库创建失败(oracle 11g_r2 创建数据库时 Enterprise Manager 配置失败)!本文目录or

2024年9月6日 19:50

centos7网卡配置(centos 7虚拟机怎么配置网卡eno 16)

centos7网卡配置(centos 7虚拟机怎么配置网卡eno 16)

“centos7网卡配置”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看centos7网卡配置(centos 7虚拟机怎么配置网卡eno 16)!本文目录centos 7虚拟机怎么配置网卡eno 16CentOS7网卡配置c

2024年8月31日 12:35

idea运行struts(IDEA配置Status2)

idea运行struts(IDEA配置Status2)

“idea运行struts”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看idea运行struts(IDEA配置Status2)!本文目录IDEA配置Status2IDEA的Struts2配置总是失败intellij ide

2024年8月29日 20:55

xorg配置(linux服务器xorg配置在哪)

xorg配置(linux服务器xorg配置在哪)

各位老铁们好,相信很多人对xorg配置都不是特别的了解,因此呢,今天就来为大家分享下关于xorg配置以及linux服务器xorg配置在哪的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录linux服务器xorg配置

2024年8月28日 22:25

jpa怎么使用(使用JPA的不同实现的配置)

jpa怎么使用(使用JPA的不同实现的配置)

各位老铁们好,相信很多人对jpa怎么使用都不是特别的了解,因此呢,今天就来为大家分享下关于jpa怎么使用以及使用JPA的不同实现的配置的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录使用JPA的不同实现的配置jp

2024年8月27日 08:00

xml常用标签(web.xml文件主要配置有哪些,都有什么含义)

xml常用标签(web.xml文件主要配置有哪些,都有什么含义)

各位老铁们好,相信很多人对xml常用标签都不是特别的了解,因此呢,今天就来为大家分享下关于xml常用标签以及web.xml文件主要配置有哪些,都有什么含义的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录web.x

2024年8月26日 11:20

feignclient(Feign Client超时时间配置以及单独给某接口设置超时时间方法记录)

feignclient(Feign Client超时时间配置以及单独给某接口设置超时时间方法记录)

大家好,如果您还对feignclient不太了解,没有关系,今天就由本站为大家分享feignclient的知识,包括Feign Client超时时间配置以及单独给某接口设置超时时间方法记录的问题都会给大家分析到,还望可以解决大家的问题,下面

2024年8月20日 09:55

hibernate二级缓存有什么用(如果不配置hibernate的二级缓存的话,是不是就体现不出hibernate的优越性)

hibernate二级缓存有什么用(如果不配置hibernate的二级缓存的话,是不是就体现不出hibernate的优越性)

大家好,如果您还对hibernate二级缓存有什么用不太了解,没有关系,今天就由本站为大家分享hibernate二级缓存有什么用的知识,包括如果不配置hibernate的二级缓存的话,是不是就体现不出hibernate的优越性的问题都会给大

2024年8月16日 14:55

vscode配置python(mac下VScode怎么配置编译Python)

vscode配置python(mac下VScode怎么配置编译Python)

“vscode配置python”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看vscode配置python(mac下VScode怎么配置编译Python)!本文目录mac下VScode怎么配置编译Python首先安装vsco

2024年8月11日 06:07

java获取项目中的文件(java文件怎么获取项目下的配置文件)

java获取项目中的文件(java文件怎么获取项目下的配置文件)

“java获取项目中的文件”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看java获取项目中的文件(java文件怎么获取项目下的配置文件)!本文目录java文件怎么获取项目下的配置文件如何使用java自动读取web项目中的e

2024年8月9日 18:30

centos java环境配置(如何在阿里云Centos7.0上配置java web环境)

centos java环境配置(如何在阿里云Centos7.0上配置java web环境)

大家好,今天小编来为大家解答以下的问题,关于centos java环境配置,如何在阿里云Centos7.0上配置java web环境这个很多人还不知道,现在让我们一起来看看吧!本文目录如何在阿里云Centos7.0上配置java web环境

2024年8月5日 22:10

超详细tomcat安装及配置教程(apache_tomcat_7.0.69怎样安装及配置)

超详细tomcat安装及配置教程(apache_tomcat_7.0.69怎样安装及配置)

各位老铁们好,相信很多人对超详细tomcat安装及配置教程都不是特别的了解,因此呢,今天就来为大家分享下关于超详细tomcat安装及配置教程以及apache_tomcat_7.0.69怎样安装及配置的问题知识,还望可以帮助大家,解决大家的一

2024年8月5日 04:15

vmware开100个虚拟机(我电脑要开100个虚拟机电脑需要什么样的配置)

vmware开100个虚拟机(我电脑要开100个虚拟机电脑需要什么样的配置)

大家好,今天小编来为大家解答以下的问题,关于vmware开100个虚拟机,我电脑要开100个虚拟机电脑需要什么样的配置这个很多人还不知道,现在让我们一起来看看吧!本文目录我电脑要开100个虚拟机电脑需要什么样的配置请问vmware在硬件允许

2024年8月5日 03:25

web服务器的配置(ASP.NET开发宝典:配置Web服务器(IIS)虚拟站点)

web服务器的配置(ASP.NET开发宝典:配置Web服务器(IIS)虚拟站点)

其实web服务器的配置的问题并不复杂,但是又很多的朋友都不太了解ASP.NET开发宝典:配置Web服务器(IIS)虚拟站点,因此呢,今天小编就来为大家分享web服务器的配置的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2024年8月4日 12:35

apache一键安装(怎样在windows下配置apache vhost)

apache一键安装(怎样在windows下配置apache vhost)

各位老铁们,大家好,今天由我来为大家分享apache一键安装,以及怎样在windows下配置apache vhost的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们

2024年8月3日 20:50

更多文章:


rabbitvcs(rabbitvcs如何提交.so文件)

rabbitvcs(rabbitvcs如何提交.so文件)

本文目录rabbitvcs如何提交.so文件rabbitvcs 安装后是为什么root权限linux安装Rabbit,怎么解决 error: /usr/share/locale/sl/LC_MESSAGES/RabbitVCS.mo: Pe

2024年7月24日 08:38

switch破解教程(switch破解版dlc怎么用)

switch破解教程(switch破解版dlc怎么用)

本文目录switch破解版dlc怎么用switch正版破解关机后怎么进去破解系统破解版switch怎么用homeswitch破解模式怎么进相册switch国行破解教程是什么switch破解游戏怎么安装switch插入破解器启动方法switc

2023年7月26日 02:20

最简单的中文网页模板(求助,运用最简单的HTML和DIV+CSS设计一个自己的网页,像博客之类的,要有内页的)

最简单的中文网页模板(求助,运用最简单的HTML和DIV+CSS设计一个自己的网页,像博客之类的,要有内页的)

本文目录求助,运用最简单的HTML和DIV+CSS设计一个自己的网页,像博客之类的,要有内页的我想找一个企业网站的html模板,比较简洁,主页左边最好有这种登录模块,模板可以直接拿来使用,谢谢求一个简单的个人网页模板HTML的求比较简洁的网

2024年7月23日 13:33

gradle打包依赖的jar(如何使用Android Studio打包混淆的Jar)

gradle打包依赖的jar(如何使用Android Studio打包混淆的Jar)

本文目录如何使用Android Studio打包混淆的Jargradle打包Android程序,如何打包时不包含依赖包把依赖库打包进JAR中的方法如何使用Android Studio打包混淆的Jar使用AS打包混淆Jar包,百度一下,一片一

2024年7月20日 08:13

什么样子的替换才用通配符(请问谁有word所有的替换功能的详解么 就比如那个“使用通配符”选项 应该怎么用)

什么样子的替换才用通配符(请问谁有word所有的替换功能的详解么 就比如那个“使用通配符”选项 应该怎么用)

本文目录请问谁有word所有的替换功能的详解么 就比如那个“使用通配符”选项 应该怎么用word中是用通配符查找替换计算机职称考试的查找替换的题什么情况下使用通配符Word中怎样用通配符查找替换请问谁有word所有的替换功能的详解么 就比如

2024年5月14日 07:54

it培训机构排名西安本地(西安最好的计算机培训机构是哪个)

it培训机构排名西安本地(西安最好的计算机培训机构是哪个)

本文目录西安最好的计算机培训机构是哪个西安it学校都有哪些西安的计算机培训学校有哪些西安培训学校机构排名西安的计算机培训机构哪个好西安最好的计算机培训机构是哪个西安最好的计算机培训机构是达内教育,该机构作为国内IT培训的领导品牌,已成功为社

2024年7月18日 10:45

combined with用法(求助be combined with、be linked to与be associated with的区别)

combined with用法(求助be combined with、be linked to与be associated with的区别)

本文目录求助be combined with、be linked to与be associated with的区别combine的用法Combineto什么意思Combinecombined with & combining with 有什

2023年6月20日 05:40

beatbox教学网站(beatbox基础教学)

beatbox教学网站(beatbox基础教学)

本文目录beatbox基础教学Bbox怎样学哪里有bbox的教学谁有b-box协会里面K-BOX - beatbox中文语音教程全套我把所有粉都给他!beatbox基础教学***隐藏网址***Beat Box基础三音篇 1. K=KICK

2024年7月19日 21:04

微信公众号里面的服务(微信公众号有哪些功能)

微信公众号里面的服务(微信公众号有哪些功能)

各位老铁们,大家好,今天由我来为大家分享微信公众号里面的服务,以及微信公众号有哪些功能的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录微信公众号有哪

2024年7月3日 01:16

rotary手表(英剧好兆头里恶魔戴的是什么手表)

rotary手表(英剧好兆头里恶魔戴的是什么手表)

本文目录英剧好兆头里恶魔戴的是什么手表关系好的男性朋友,生日想送手表,什么牌子适合大学生英剧好兆头里恶魔戴的是什么手表夏洛克佩戴的是ROTARY品牌的钢表,这是一个主要在英国销售的品牌,价位相当亲民,很像是英国版的“海鸥”。哥哥夏洛克身居政

2024年6月12日 12:32

34岁唐艺昕带娃逛街(张若昀唐艺昕十指紧扣吃饭逛街,他们的感情究竟有多甜蜜)

34岁唐艺昕带娃逛街(张若昀唐艺昕十指紧扣吃饭逛街,他们的感情究竟有多甜蜜)

本文目录张若昀唐艺昕十指紧扣吃饭逛街,他们的感情究竟有多甜蜜唐艺昕带娃外出,二人在河边玩耍,唐艺昕最近过得怎么样唐艺昕张佳宁结伴出游,她们两姐妹的关系有多好唐艺昕挺巨肚出游,张若昀贴身陪同全程紧盯,手摸孕肚满脸宠溺,你怎么看唐艺昕一家三口出

2024年4月15日 00:10

素数的应用有哪些?小学数学为什么要介绍素数的概念

素数的应用有哪些?小学数学为什么要介绍素数的概念

本文目录素数的应用有哪些小学数学为什么要介绍素数的概念素数有规律可循吗素数分布的规律是什么如何用自然语言、一般流程图来描述素数判断的算法过程急求!!! 用N-S图表示输出100-200之间素数的算法!1到100之间的素数流程图怎么画求100

2024年7月3日 05:32

docker安装群晖系统(群晖ds216j如何安装docker套件)

docker安装群晖系统(群晖ds216j如何安装docker套件)

大家好,今天小编来为大家解答以下的问题,关于docker安装群晖系统,群晖ds216j如何安装docker套件这个很多人还不知道,现在让我们一起来看看吧!本文目录群晖ds216j如何安装docker套件说到docker,不知道群晖中的doc

2024年7月8日 20:25

sort对结构体数组排序(c++以一个数组为关键字对多个数组排序)

sort对结构体数组排序(c++以一个数组为关键字对多个数组排序)

本文目录c++以一个数组为关键字对多个数组排序c++中数组如何排序学生成绩管理系统如何给字符串排序在vba中,使用union选择不同单元格,然后组成数组,结果数组里元素的顺序和希望的不一样希望大神指教sort排序的时候遇到两个数相等怎么处理

2024年7月23日 07:36

rubbery(Hubery是什么意思)

rubbery(Hubery是什么意思)

本文目录Hubery是什么意思rubby 是什么意思rubber怎么读ePen Grip rubbery是什么功能Hubery是什么意思n. 休伯里 · 博伊;    一、读音:英  二、例句:In each cave they const

2024年7月3日 10:29

oracle client是什么(Oracle11g的database 和client的区别是什么)

oracle client是什么(Oracle11g的database 和client的区别是什么)

本文目录Oracle11g的database 和client的区别是什么oracle Instant Client 和oracle client 有什么区别Oracle client 版和server 版有啥区别oracle client怎

2024年7月23日 14:37

ps快速切片(PS怎么切片)

ps快速切片(PS怎么切片)

“ps快速切片”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看ps快速切片(PS怎么切片)!本文目录PS怎么切片PS怎么制作切片效果图怎么将图片切片Ps怎么做切片在线图像分割-PS高手来!怎么把图像等分!PS里如何切割ps怎

2024年7月11日 08:48

数组计算后如何返回公式(怎么根据数组公式的值返回相对应的值)

数组计算后如何返回公式(怎么根据数组公式的值返回相对应的值)

本文目录怎么根据数组公式的值返回相对应的值excel中设置公式后按F9查看之后如何恢复之前公式EXCEL数组公式函数如何转换查看内容excel插入创建表,计算完成后如何返回求Excel公式,在一组数组中查找一个值,找到了返回另一个值,看详细

2024年7月23日 00:15

企业网站出售(做网站需要多少钱由企业需求而定!)

企业网站出售(做网站需要多少钱由企业需求而定!)

大家好,今天小编来为大家解答以下的问题,关于企业网站出售,做网站需要多少钱由企业需求而定!这个很多人还不知道,现在让我们一起来看看吧!本文目录做网站需要多少钱由企业需求而定!域名代备案平台 域名快速备案怎么弄 网站备案代办 企业备案域名出售

2024年7月25日 14:45

ajax编程带来的新的攻击变化(AJAX技术有哪些方面的优势)

ajax编程带来的新的攻击变化(AJAX技术有哪些方面的优势)

本文目录AJAX技术有哪些方面的优势AJAX框架干嘛的ajax原理是什么什么是Ajax它的优点是怎样的ajax的开发模式AJAX的主要用途是什么Ajax有什么用什么时候使用AjaxAJAX是什么Ajax的优缺点AJAX技术有哪些方面的优势1

2024年7月20日 06:02

近期文章

alter table modify column null(sql语句怎么把不允许为空的属性修改为允许为空)
2024-09-30 05:55:07
本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1153
标签列表

热门搜索