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

贵州省建设厅考试网站校园互动网站建设

贵州省建设厅考试网站,校园互动网站建设,做直播网站软件,广西网站建设推广报价目录 微服务架构时代 快速入门 入门详解 SpringBoot的自动配置 石器时代#xff1a;XML配置bean 青铜时代#xff1a;SpringConfig 铁器时代#xff1a;AutoConfigurationImportSelector 手写简单Starter SpringApplication启动原理 微服务架构时代 Spring Boot的…目录 微服务架构时代 快速入门 入门详解 SpringBoot的自动配置 石器时代XML配置bean 青铜时代SpringConfig 铁器时代AutoConfigurationImportSelector 手写简单Starter SpringApplication启动原理 微服务架构时代 Spring Boot的出现与微服务架构有关它是Spring Framework的一部分旨在简化开发独立的、可执行的Java应用程序。Spring Boot解决了传统Java应用程序开发中的繁琐配置问题使开发人员能够更快速地构建微服务和独立应用程序。 快速入门 如果要快速入门这个传送门一定很有帮助-------Spring | Quickstart 入门详解 Spring入门详解的部分诸君可以看一下这篇文章 SpringBoot入门详解-CSDN博客 SpringBoot的自动配置 石器时代XML配置bean ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd ​!-- 声明一个名为 myBean 的 Bean --bean idmyBean classcom.elaine.MyBeanproperty namename valueelaine//bean ​ /beans 青铜时代SpringConfig Configuration public class MyConfiguration { ​Beanpublic MyBean myBean() {MyBean bean new MyBean();bean.setName(Elaine);return bean;} } 铁器时代AutoConfigurationImportSelector SpringBoot开启自动配置的注解是EnableAutoConfiguration但是自动配置的核心功能是通过AutoConfigurationImportSelector实现的。 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 {}; } AutoConfigurationImportSelector实现ImportSelector接口收集需要导入的配置类配合Import将相应的类导入到Spring容器中。 获取注⼊类的⽅法是 selectImports()它实际调⽤的是 getAutoConfigurationEntry 这个⽅法是获取⾃动装配类的关键主要流程可以分为这么⼏步 获取注解的属性用于后面的排除 获取所有需要⾃动装配的配置类的路径这⼀步是最关键的从 META-INF/spring.factories 获取⾃动 配置类的路径 去掉重复的配置类和需要排除的重复类把需要⾃动加载的配置类的路径存储起来 public String[] selectImports(AnnotationMetadata annotationMetadata) {if (!this.isEnabled(annotationMetadata)) {return NO_IMPORTS;} else {AutoConfigurationEntry autoConfigurationEntry this.getAutoConfigurationEntry(annotationMetadata);return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());}} ​protected AutoConfigurationEntry getAutoConfigurationEntry(AnnotationMetadata annotationMetadata) {if (!this.isEnabled(annotationMetadata)) {return EMPTY_ENTRY;} else {// 1.获取注解的属性AnnotationAttributes attributes this.getAttributes(annotationMetadata);// 2.获取需要⾃动装配的所有配置类读取META-INF/spring.factories获取⾃动配置类路径ListString configurations this.getCandidateConfigurations(annotationMetadata, attributes);// 3.1.移除重复的配置configurations this.removeDuplicates(configurations);// 3.2.处理需要排除的配置SetString exclusions this.getExclusions(annotationMetadata, attributes);this.checkExcludedClasses(configurations, exclusions);configurations.removeAll(exclusions);configurations this.getConfigurationClassFilter().filter(configurations);this.fireAutoConfigurationImportEvents(configurations, exclusions);return new AutoConfigurationEntry(configurations, exclusions);}} 手写简单Starter 在了解自动配置的原理后就简单地创建一个自定义的spring-boot-starter吧。 文件目录贴一下 创建自动配置类和需要定义的bean。 Configuration public class MyUserAutoConfiguration {Beanpublic UserManager userManager(){return new UserManager();} } public class UserManager {public String sayHello() {return own-starter:hello.;} } 在 src/main/resources/META-INF/ 目录下创建一个 spring.factories 文件 org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.lloyd.user.MyUserAutoConfiguration 创建一个spring-web的SpringBoot项目添加自定义Starter的依赖。 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- 自定义starter的坐标 --dependencygroupIdcom.lloyd/groupIdartifactIdspringboot_06_own_starter/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies 创建一个Rest接口进行验证 RestController public class UserController {Autowiredprivate UserManager userManager; ​GetMapping(/user)public String sayHello(){return userManager.sayHello();} } 浏览器结果 SpringApplication启动原理 SpringApplication 这个类主要做了以下四件事情 推断应⽤的类型是普通的项⽬还是 Web 项⽬ 查找并加载所有可⽤初始化器 设置到 initializers 属性中 找出所有的应⽤程序监听器设置到 listeners 属性中 推断并设置 main ⽅法的定义类找到运⾏的主类 大致流程如下(图片来自于网络)
http://www.pierceye.com/news/766972/

相关文章:

  • 网站建设动漫网站模板怎么做的
  • 西安网站制作公司官网wordpress证书关闭
  • 北网站建设优化seo是什么意思
  • 中国seo网站长沙城乡建设网站
  • 没有相应营业执照怎么做网站重庆网站设计公司排名
  • 企业网站手机版商城网站有什么好处
  • 推荐一本学做网站的书温州阀门网站建设
  • 用户要承担暖气费的税吗太原优化排名推广
  • Wordpress外贸网站搭建公司宿迁建设网站
  • 学校网站建设的意义和应用山东淄博网站建设
  • 莱芜网站建设价格低网站vps
  • 长治做网站哪家好赣州注册公司
  • 网站开发从入门到精通做h5的网站哪个好
  • 免费公司网站如何建立设计个人网站好备案吗
  • 建网站和做微信哪个好在线识别图片百度识图
  • php网站开发如何实现删除功能大连大连建设工程信息网站
  • 表格模板免费下载网站wordpress 插件位置
  • wordpress小白能学会吗汕头做网站优化公司
  • 军队营房基础建设网站重庆做网站个人
  • 网站建设怎样中英文网站备案是空间备案还是域名备案
  • 陕西网站制作人力资源服务外包
  • 成都网站建设哪家售后好网站建设费可以计业务费吗
  • 做服装到哪个网站拿货品质好自己制作的网页别人如何访问
  • 榆林哪里做网站网页游戏网站那个好
  • 泰安口碑好的企业建站公司wordpress验证码无效
  • 圣矢网络重庆网站建设优化推广公司好听好记的网站域名
  • 如何做旅游小视频网站比较好的外贸公司
  • 图书馆建设投稿网站使用 ahrefs 进行 seo 分析
  • 校园网站建设 德育免费换ip软件
  • 排行网站模板凡科代理千万不要做