当前位置: 首页 > news >正文

做一个商城网站教育培训排行榜前十名

做一个商城网站,教育培训排行榜前十名,小程序代运营,工业设计公司属于什么行业前言 一个刚刚看完SpringBoot自动装配原理的萌新依据自己的理解写下的文章,如有大神发现错误,敬请斧正,不胜感激。 分析SpringBoot自动配置原理 SpringBoot的启动从被SpringBootApplication修饰的启动类开始,SpringBootApplicaiotn注解中最…

前言

一个刚刚看完SpringBoot自动装配原理的萌新依据自己的理解写下的文章,如有大神发现错误,敬请斧正,不胜感激。

分析SpringBoot自动配置原理

  1. SpringBoot的启动从被@SpringBootApplication修饰的启动类开始,@SpringBootApplicaiotn注解中最重要的注解是@EnableAutoConfiguration,其负责自动装配,底层由@Import()注解中传入一个ImportSeletor的实现类AutoConfigurationImportSelector完成自动配置类的导入
  2. AutoConfigurationImportSelector类中selectImports方法负责返回一个由自动配置类权限定类名组成的字符串数组,在这个方法中扫描了spring-boot-autoconfigure-2.6.13.jar/WEB-INF/spring.factories中的所有权限定类名,经层层返回以及@Conditional系类的注解筛选后,将需要加载的配置交给IOC容器完成自动配置

一个标准的SpringBoot启动器的组成

一个“干活的”类

这个类是整个模块的核心,他完成整个模块中的逻辑操作,他的参数需要从配置文件中获取,他需要被纳入IOC容器的管理

一个"搬运工"类

这个类从配置文件中读取数据,并被注入到核心类中,是核心类从配置文件中获取数据的桥梁

一个"与SpringBoot沟通"的类

这个类的权限定类名被写入到spring-boot-autoconfigure-2.6.13.jar/WEB-INF/spring.factories文件中,在SpringBoot容器启动时被读取,并通过@Conditional系列注解判断是否加载该配置文件,以及将核心类纳入到IOC容器管理

自定义SpringBoot启动器

目标:完成一个自我介绍类,从配置文件中获取name以及introduction介绍词

搬运工类SelfIntroductionPropertis

@ConfigurationProperties(prefix = "self") // 指定配置文件中的前缀
@Data
public class SelfIntroductionPropertis {private String name = "Default Name";private String introduction = "Default Introduction";
}

@ConfigutationProperties(prefix=“self”)使用配置绑定对象完成对配置的读取

核心类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class SelfIntroductionService {@Resourceprivate SelfIntroductionPropertis selfIntroductionProperties;public String say(){return "Hello,My name is" + selfIntroductionProperties.getName() + "," + selfIntroductionProperties.getIntroduction();}
}
  • @Resource 自动注入SelfIntroductionPropertis对象
  • say()方法完成该模块的主要功能

与"SpringBoot"沟通,完成自动装配的类

@EnableConfigurationProperties(SelfIntroductionPropertis.class) 
//开启对SelfIntroductionPropertis类中@ConfigurationProperties注解的配置绑定支持,并将其纳入IOC容器管理
@ConditionalOnClass(SelfIntroductionService.class)
@Configuration // 是一个配置类,配置bean
public class SelfIntroductionAutoConfiguration {@Bean@ConditionalOnMissingBeanpublic SelfIntroductionService selfIntroductionService() {return new SelfIntroductionService();}
}
  • @EnableConfigurationProperties注解开启对SelfIntroductionPropertis类中@ConfigurationProperties注解的配置绑定支持,并将其纳入IOC容器管理
  • @ConditionalOnClass(SelfIntroductionService.class)完成自动配置的关键,只有当核心类存在时才引入这个配置类
  • @Bean 将SelfIntroductionService纳入IOC容器的管理,并指定name

将自动配置类加入到SpringBoot自动配置jar包中的WEB-INF/spring.factories中

从包中复制.factories文件到main/resource/WEB-INF文件夹下,使该自动配置类在SpringBoot启动时能被扫描到,完成自动配置
在这里插入图片描述

打包,并存入本地maven仓库

测试

新建SpringBoot工程并将自定义启动器引入

<?xml version="1.0" encoding="UTF-8"?>
<project>
。。。<dependencies><dependency><groupId>xyz.wrywebsite</groupId><artifactId>springboot-mystarted</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
。。。</project>

配置文件编写

server.port=8080
self.name=lisi
self.introduction=wow wow wow

编写测试类

@RestController
public class BasicController {@Resourceprivate SelfIntroductionService selfIntroductionService;@GetMapping("/selfIntroduction")public String selfIntroduction() {return selfIntroductionService.say();}}

运行,输出结果

Hello,My name islisi,wow wow wow
http://www.hotlads.com/news/254.html

相关文章:

  • 邢台有限公司高级seo培训
  • 做网站需要规划好什么网站优化seo推广服务
  • 西安网站开发的空间竞价推广公司
  • 信息化建设办公室网站百度seo优化排名
  • b2c网站设计seo个人博客
  • 建个公司网站怎么弄互联网公司排名
  • html5 网站开发工具实体店怎么引流推广
  • 丹东谁做微网站深圳百度网站排名优化
  • 网站改版怎么做301重定向平台运营
  • 专门做评测的网站有哪些网络服务包括哪些内容
  • 建设公司网站标题口碑营销的缺点
  • 福建建设执业管理中心网站网站优化策划书
  • 做电商网站搭建就业岗位seo知名公司
  • 做内部网站费用发广告平台有哪些免费
  • wordpress 开启手机seo国外英文论坛
  • 网站建设合同 包括什么企业seo优化服务
  • 核工业华南建设集团网站整站排名优化品牌
  • 银行网站建设方案站长工具seo综合查询5g
  • 网站建设赚钱项目新闻稿
  • 网站开发要什么软件如何在互联网上做推广
  • 苹果app开发软件厦门谷歌seo公司有哪些
  • 杭州个人做网站广告词
  • 深圳罗湖做网站58旅游搜索量环比增188%
  • 案例学网页设计和网站建设如何制作网页教程
  • 电子商务网站开发需求文档南通百度seo代理
  • 网站制作小工具我想做网络推广找谁
  • 合川网站建设深圳网络公司推广公司
  • 好看的个人网站主页江北seo页面优化公司
  • 找建筑图纸的网站品牌策划ppt案例
  • 微信pc版网站seo优化案例