当前位置: 首页 > 网络应用技术

图片和文字不仅仅是春季启动器的详细说明!还有谁不能?

时间:2023-03-06 16:43:15 网络应用技术

  在Springboot出现之前,如果我们想使用SpringMVC来构建我们的Web项目,我们必须做的一些事情如下:

  上述步骤仅配置为SpringMVC。如果我们仍然需要与数据库进行交互,则必须在application.xml中配置数据库连接池数据源。如果需要数据库,我们还需要配置TransActionManager ...

  这是使用春季框架开发项目带来的一些问题:

  在出现Springboot之后,它为我们提供了一个强大的功能来解决上述两个疼痛点。这是Springboot的开头。

  Spring Boot使用我们常用的功能场景来制作一系列场景启动器。这些启动子帮助我们介绍了所有需要取决于每个功能的组件。我们只需要在项目中介绍这些启动器,相关方案,相关的方案依赖性将被导入,我们可以放弃复杂的配置。您只需要使用配置文件即可执行少量配置以使用相应的功能。

  在进口启动器之后,Springboot主要帮助我们完成了两件事:

  这两件事均匀地称为Springboot的自动配置

  2.1.1从主要程序入口探索整个过程的原理:

  春季靴将不会引入基础。推荐本实际教程:https://github.com/javastacks/spring-boot-best-practice

  注释的内部结构如下图所示:

  :专注于此类中的SelectImports方法重写,以查看如何获得其返回的字符串数组:

  我们可以转到上面提到的文件以查看,查找Spring提供的官方包,并在其中找到文件:

  您可以看到这是Springboot提供的所有自动配置类的候选列表。我们可以找到我们熟悉的自动配置类以查看其内部实现:

  您可以看到所有这些都是Javaconfig配置类,并且它们都通过注释将一些Bean注入容器中

  综上所述:

  2.1.2自动配置过程的自动配置类被注入容器中,它将帮助我们执行组件的自动配置和自动注入工作。我们以HTTPENCONCONCONCAUTOCONFIFUTION(HTTP编码自动配置)为例:一个例子:

  首先,让我们看一下Springboot中配置文件和POJO类之间映射的方法。这是自动配置的基础。

  集中管理:Springboot中的所有可配置项目都集中在文件(application.yml)中。该文件中的配置与我们程序通过注释定义的POJO类关联。这些POJO类是命名的。这些类中的每个属性字段都有其自己的默认值,这也是Springboot的实施例,同意比配置概念更大,从而最大程度地减少了用户选择的次数,但同时又将其最小化。只要我们认为,配置文件中的配置就可以随时覆盖默认值。

  之后,通过交配,可以将绑定到配置文件绑定的类注入容器中供我们使用。

  自动配置类的工作流程:

  在句子中,总结了自动配置类的工作过程:

  在理解自动组装原理后,我们将注意一个细节问题。自动配置类必须在某些条件下生效;

  功能:必须在指定条件下建立它以将组件添加到容器中,并且配置中的所有内容都将生效;

  如此多的自动配置类必须在某些条件下生效;也就是说,我们已经加载了许多配置类,但并非所有配置类都生效了。

  我们怎么知道哪些自动配置类生效?

  我们可以启用属性;让控制台打印自动配置报告,以便我们可以轻松地知道哪些自动配置类生效;

  :(启用自动配置类:正匹配)

  :(没有启动,没有成功的自动配置类:负匹配)

  排除,无条件课程

  现在,我们已经了解了场景启动器的概念以及其背后的自动配置原理。我们可以扩展Springboot的功能,以定义自己的方案。

  官方命名空间

  自定义命名空间

  推荐春季靴基本教程和实际战斗示例:https://github.com/javastacks/spring-boot-practice

  通过上面的简介,您可以汇总由两个基本部分组成的入门者的总体实现逻辑:

  :自动配置类,在某些情况下需要自动注入某些组件,并使用XXXProperties类执行组件相关的配置

  :在场景中所有可配置属性的集成集成中,配置文件中的配置可以根据Springboot的官方定义涵盖属性值。Starter只能扮演导入的角色,并且应交付特定的代码实现到达其他模块以实现,然后可以在入门器中引用该模块。因此,总体起动器的组成应如下图所示:

  可以看出,入门模块依赖于两个部分,一个是一些常用的依赖项,另一个是对自动配置模块的依赖性。

  3.3.1依靠所有自动配置模块的引入来引入两个JAR软件包依赖项:

  可以根据项目需求添加其他依赖项的选择

  3.3.2 AutoConfigure模块中最重要的事情的XXXAUTONFIGUTION实现是编写自动配置类,供我们实施自动配置和自动注入组件。

  在编写自动配置类时,我们应该考虑将哪些组件注入到容器中以及如何配置。

  3.3.3 XXXProperties实现是将绑定到配置文件的类。内部的属性是我们可以在配置文件中配置的内容,然后将其绑定到配置文件:

  3.3.4配置spring.factories文件以在资源目录中创建一个新的Meta-Inf文件夹,在文件夹下创建一个新文件,然后添加书面类:

  入门模块仅取决于导入,将依赖项添加到POM文件中的自动配置模块中,并添加其他一些必要的依赖项:

  在完成这两个模块的开发后,该软件包通过MVN安装命令或部署命令发布到本地或中央仓库,该命令可以直接在其他项目中直接引用我们的自定义启动模块。

  资料来源:blog.csdn.net/qq_21310939/article/details/107401400