解密自动化配置-Boot中的starter-徒手撸一个Spring (解密自动化配件有哪些)

教程大全 2025-07-08 10:35:31 浏览

starter背景

Spring Boot目前已经变成了后端开发这必备技能之一,其中一个主要原因是Spring Boot中有个非常重要的机制(starter机制)。

starter能够抛弃以前繁杂的配置,将其统一集成进starter,使用的时候只需要在maven中引入对应的starter依赖即可,Spring Boot就能自动扫描到要加载的信息并启动相应的默认配置。

starter让我们摆脱了各种依赖库的处理,以及各种配置信息的烦恼。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。Spring Boot提供了针对日常企业应用研发各种场景的spring-boot-starter依赖模块。所有这些依赖模块都遵循着约定成俗的默认配置,并允许我们调整这些配置,即遵循“约定大于配置”的理念。

我们经常会看到或者使用到各种xxx-starter。比如下面几种:

Spring Boot starter原理

从总体上来看,无非就是将Jar包作为项目的依赖引入工程。而现在之所以增加了难度,是因为我们引入的是Spring Boot Starter,所以我们需要去了解Spring Boot对Spring Boot Starter的Jar包是如何加载的?下面我简单说一下。

SpringBoot 在启动时会去依赖的 starter 包中寻找 /META-INF/spring.factories 文件,然后根据文件中配置的 Jar 包去扫描项目所依赖的 Jar 包,这类似于 Java 的 SPI 机制。

细节上可以使用@Conditional 系列注解实现更加精确的配置加载Bean的条件。

JavaSPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。

自定义starter的条件

如果想自定义Starter,首选需要实现自动化配置,而要实现自动化配置需要满足以下两个条件:

实现自定义starter

根据需要自定义Starter的实现过程大致如下(以我定义的Starter为例):

定义XxxProperties类,属性配置类,完成属性配置相关的操作,比如设置属性前缀,用于在application.properties中配置。

TianProperties代码:

创建XxxService类,完成相关的操作逻辑 。

TianService代码:

定义XxxConfigurationProperties类,自动配置类,用于完成Bean创建等工作。

TianServiceAutoConfiguration代码:

在resources下创建目录META-INF,在 META-INF 目录下创建 spring.factories,在SpringBoot启动时会根据此文件来加载项目的自动化配置类。

「spring.factories中配置」

把上面这个starter工程打成jar包:

使用自定义starter

创建一个Spring Boot项目test,项目整体如下图:

在项目中把自定义starter添加pom依赖

TestApplication启动类

application.properties中配置

写一个TestController.java类

把我们自定义的starter打成的jar依赖进来后,

可以看到其中多了一个json的文件。

最后启动项目,输入

controller成功返回ok,再看后台打印

这就成功的现实了自定义的starter。

关键词:开箱即用、减少大量的配置项、约定大于配置。

总结

徒手撸一个Spring

电脑中所有重要的英语单词即及句子和解释

access arm 磁头臂,存取臂access time 存取时间adder 加法器address 地址alphanumeric 字母数字的analog computer 模拟计算机analyst 分析员area 区域array 数组,阵列assembler 汇编程序automation 自动化band 区batch processing 成批处理binary code 二进制码binary digit 二进制位,二进制数字bit 比特,二进制的一位branch 分支,支线brush 电刷buffer storage 缓冲存储器calculator 计算器call instruction 呼叫指令card punch 卡片穿孔机card reader 卡片阅读机,读卡机cell 单元channel 通道,信道character 字符check digit 校验数位circuit 电路,线路to clear 清除,清零clock 时钟code 代码to code 编码coder 编码员,编码器command 指令,命令compiler 编译程序computer language 计算机语言console 控制台control unit 控制部件,控制器core storage, core store 磁心存储器counter 计数器cybernetics 控制论cycle 循环data 数据data processing 数据处理debugging 调试decision 制定digit 数字,数位,位digital computer 数字计算机disc, disk 磁盘diSPLay unit 显示装置drum 磁鼓to edit 编辑electronics 电子学emitter 发射器to encode 编码to erase 擦除,清洗,抹除feed 馈送,供给to feed 馈送,供给feedback 反馈field 字段,信息组,域file 文件floppy disk 软磁盘floppy disk drive 软磁盘机flow chart 流程图frame 帧hardware 硬件identifier 标识符index 索引information 信息inline processing 内处理input 输入inquiry 询问instruction 指令integrated circuit 集成电路to interpret 解释item 项目,项jump 转移key 键,关键码keyboard 键盘latency time 等待时间library 库,程序库linkage 连接to load 装入,寄存,写入,加载location 存储单元logger 登记器,记录器loop 循环machine language 机器语言magnetic storage 磁存储器magnetic tape 磁带matrix 矩阵memory 存储器message 信息,报文microcomputer 微型计算机module 组件,模块monitor 监视器,监督程序,管程nanosecond 毫微秒network 网络,网numeric, numerical 数字的,数值的octet 八位位组,八位字节operator 操作员optical character reader 光符阅读机optical scanner 光扫描器output 输出overflow 溢出,上溢panel 平板parameter 参数,参量perforator 穿孔机peripheral equipment 外围设备,外部设备personal computer 个人计算机printed circuit 印制电路printer 打印机printout 打印输出to process 处理processing unit 处理部件program 程序to program 程序编制programmer 程序设计员programming 程序设计,程序编制pulse 脉冲punch 穿孔to punch 穿孔punched card, punch card 穿孔卡片punched tape, punch tape 穿孔纸带punch hole 孔,穿孔random access 随机存取to read 读reader 阅读程序reading 阅读real time 实时record, register 记录redundancy 冗余routine 例行程序selector 选择器,选择符sentinel 标记sequence 序列,顺序sequential 顺序的serial 串行的.连续的shift 移位,移数signal 信号simulation 模拟simulator 模拟器,模拟程序software 软件,软设备sort 分类,排序sorter 分类人员,分类机,分类程序,排序程序storage 存储器to store 存储subroutine, subprogram 子程序switch 开关symbol 符号symbolic language 符号语言system 系统tabulator 制表机teleprinter 电传打字机terminal 终端terminal unit 终端设备timer 时钟,精密计时器time sharing 分时timing 定时track 磁道transducer 传感器,翻译机translator 翻译程序,翻译器to update 更新Winchester disk drive 温彻斯特磁盘机,硬盘机working storage 工作存储器internet, internet work, interconnection network 互联网, 又名互连网。 泛指由多个计算机网络相互连接而成的一个网络,它是在功能和逻辑上组成的一个大型网络。

vista下如何对文件或文件夹加密?

Windows Vista在保证用户机密数据的安全方面有了很大改进,其中最重要的莫过Windows Vista Enterprise与Ultimate版中提供的系统级的安全防护BitLocker,其可以提供完整的驱动器加密功能,有效地避免Windows Vista用户因 PC 硬件丢失、被盗或不当的淘汰处理而导致由数据失窃或泄漏构成的威胁,即便非法使用者启动另外一个系统,以脱机方式浏览存储在受保护驱动器中的文件,也无法读出加密信息,从而实现增强的数据保护功能。 一般而言,为达到最佳的安全防护效果,最好在支持受信平台模块(TPM : Trusted Platform Module)1.2及后续版本的系统中应用BitLocker,这样可实现基于硬件的全盘加密,当然,Windows Vista也支持在不含TPM的系统中使用Bitlocker。 除Bitlocker之外,在Windows Vista中我们还可以使用EFS(Encrypt File System : 加密文件系统)进行更灵活的数据保护。 虽然EFS并不是一项新技术,但在Windows vista中,无论功能还是使用的便易性方面都有了很大的提高。 简单说来,EFS可以将文件夹/文件以加密的形式存储在硬盘上,这样,特定的文件/文件夹便只能被具有正确证书通过私钥认证的用户打开,加密与解密的过程由Windows 自动在后台进行,用户可以按照通常的方式使用文件,在关闭文件时,该文件将被加密;而在重新打开该文件时,它将会被解密。 对于不具备操作权限证书的用户,即使重新安装系统,同样无法存取该文件/文件夹。 在Windows Vista加密文件/文件夹要在Windows Vista加密文件/文件夹,可按下面的操作步骤进行:1、在资源管理器中找到待保护的文件/文件夹,右键单击选择“属性”;2、在“常规”选项页中点击“高级”按钮3、勾选高级属性中的“加密内容以便保护数据”项,点击“确定”4、在返回的“常规”选项页中点击“确定”,系统将会根据加密文件与文件夹的不同而询问进一步的设置,如加密文件夹时询问是否应用到其下的子文件夹及文件;而加密文件时则会询问是否加密该文件的父文件夹等,根据具体需要选择相应的选项;如此,加密即告完成。 在资源管理器中可以看到加密的文件/文件夹以绿色显示,查看其加密属性的“详细信息”,可以看到我们的例子中,该文件如今只允许用户“HighDiy”访问需要指出的是,文件加密(EFS)只能在 NTFS 文件系统的硬盘上使用,同时,加密与NTFS的压缩功能是不能同时使用的,也即是说,对特定文件,如果您使用了文件压缩功能,那么,便无法对其实施加密了。 此外必须明确的是,Windows Vista Starter、Windows Vista Home Basic 和 Windows Vista Home Premium版本对EFS的支持并不完全,只能实现部分功能。

氮气弹簧在模具中怎么应用

氮气弹簧简而言之,它在模具中充当的还是弹簧,提供的是压力源。 但它和普通弹簧有所不同,在提供压力的过程中,普通弹簧提供的压力源的大小基本符合胡可定律,随着压缩量的增加,压力逐渐增大至最大值,它的大小和材质、劲度系数等有关,提供的是变力;氮气弹簧和普通弹簧的本质区别在于,氮气弹簧的力在一定范围内是可调的,提供的是恒定的力。 氮气弹簧因为价格等因素,主要应用于震动频率高,可调节的模具中,例如transfer线模具、高速冲模具等自动化程度较高的模具中

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐