电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

淺析SpringBoot自動化配置原理實(shí)現(xiàn)

瀏覽:2日期:2023-05-10 13:09:41

緒論

什么是SpringBoot?Spring Boot 是所有基于 Spring 開發(fā)的項目的起點(diǎn)。Spring Boot 的設(shè)計是為了讓你盡可能快的跑起來 Spring 應(yīng)用程序并且盡可能減少你的配置文件。簡單來說就是SpringBoot其實(shí)不是什么新的框架,它默認(rèn)配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道這樣比喻是否合適)。

SpringBoot四個主要特性

SpringBoot Starter:他將常用的依賴分組進(jìn)行了整合,將其合并到一個依賴中,這樣就可以一次性添加到項目的Maven或Gradle構(gòu)建中;自動配置:SpringBoot的自動配置特性利用了Spring4對條件化配置的支持,合理地推測應(yīng)用所需的bean并自動化配置他們;命令行接口:(Command-line-interface, CLI):SpringBoot的CLI發(fā)揮了Groovy編程語言的優(yōu)勢,并結(jié)合自動配置進(jìn)一步簡化Spring應(yīng)用的開發(fā);Actuatir:它為SpringBoot應(yīng)用的所有特性構(gòu)建一個小型的應(yīng)用程序。但首先,我們快速了解每項特性,更好的體驗他們?nèi)绾魏喕疭pring編程模型。

Springboot遵循“約定優(yōu)于配置”的原則,使用注解對一些常規(guī)的配置項做默認(rèn)配置,減少或不使用xml配置,讓你的項目快速運(yùn)行起來。Springboot還為大量的開發(fā)常用框架封裝了starter,如今引入框架只要引入一個starter,你就可以使用這個框架,只需少量的配置甚至是不需要任何配置。

源碼

@SpringBootApplication

一切緣起@SpringBootApplication注解。@SpringBootApplication注解是SpringBoot的核心注解。目前實(shí)際項目開發(fā)中,該注解標(biāo)注的類為主啟動類,即運(yùn)行如下代碼的main方法作為入口,一般在main方法中使用SpringApplication.run()來啟動整個應(yīng)用。

@SpringBootApplicationpublic class InformalEssayApplication { public static void main(String[] args) { SpringApplication.run(InformalEssayApplication.class, args); }}

@SpringBootApplication是一個復(fù)合注解或派生注解。下面我們跟進(jìn)該注解,細(xì)品它的核心組成。

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })public @interface SpringBootApplication {//省略詳細(xì)方法}

實(shí)際開發(fā)項目中定義變量名時,一般要求大家見名知意,因此針對本篇文章的主題:自動化配置,那么從上面代碼中我們可以找到對應(yīng)的注解即@EnableAutoConfiguration.

@EnableAutoConfiguration

這個注解也是一個派生注解,其中的關(guān)鍵功能由@Import提供,其導(dǎo)入的AutoConfigurationImportSelector的selectImports()方法通過SpringFactoriesLoader.loadFactoryNames()掃描所有具有META-INF/spring.factories的jar包。spring-boot-autoconfigure-x.x.x.x.jar里就有一個這樣的spring.factories文件。

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@AutoConfigurationPackage@Import(AutoConfigurationImportSelector.class)public @interface EnableAutoConfiguration {String ENABLED_OVERRIDE_PROPERTY = 'spring.boot.enableautoconfiguration';Class<?>[] exclude() default {};String[] excludeName() default {};}

這個spring.factories文件也是一組一組的key=value的形式,其中一個key是EnableAutoConfiguration類的全類名,而它的value是一個xxxxAutoConfiguration的類名的列表,這些類名以逗號分隔,如下圖所示:

淺析SpringBoot自動化配置原理實(shí)現(xiàn)

總結(jié)

綜合以上,可以理解為@EnableAutoConfiguration注解通過@SpringBootApplication被間接的標(biāo)記在了Spring Boot的啟動類上。在SpringApplication.run(…)的內(nèi)部就會執(zhí)行selectImports()方法,找到所有JavaConfig自動配置類的全限定名對應(yīng)的class,然后將所有自動配置類加載到Spring容器中。

到此這篇關(guān)于淺析SpringBoot自動化配置原理實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot自動化配置內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 避光流动池-带盖荧光比色皿-生化流动比色皿-宜兴市晶科光学仪器 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 青岛成人高考_山东成考报名网 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 杭州|上海贴标机-百科| 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | LNG鹤管_内浮盘价格,上装鹤管,装车撬厂家-连云港赛威特机械 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | TPE塑胶原料-PPA|杜邦pom工程塑料、PPSU|PCTG材料、PC/PBT价格-悦诚塑胶 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 |