当前位置:首页 > 数码 > Springboot之把外部依赖包纳入Spring容器管理的两种方式

Springboot之把外部依赖包纳入Spring容器管理的两种方式

admin6个月前 (05-11)数码30

在 Spring Boot 项目中,使用 @Component、@Controller、@Service、@Configuration 和 @Bean 等注解标记的类会在容器启动时自动创建并纳入 Spring 容器管理。这可以通过 @ComponentScan 注解实现,它默认扫描启动类所在包及其子包。

问题:管理外部组件

如果需要将公共业务组件也放到 Spring 容器中,以便在业务代码中注入使用,该如何操作?

解决方法

方法 1:Spring.factories

Spring.factories 配置文件指定了 Spring 中预留的扩展点配置接口和具体配置类的对应关系。在 resources 目录下创建 /META-INF/spring.factories 文件,实现 Spring 的扩展点配置接口,在使用时引入到项目中,Spring 容器启动时会读取该文件并纳入相关配置类。

方法 2:org.springframework.boot.autoconfigure.AutoConfiguration.imports

此方法在 Spring Boot 2.7 及更高版本中可用,其作用与 Spring.factories 类似。在 /META-INF/spring/ 目录下创建 org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件,其中包含要导入 Spring 环境的配置类。

Spring

方法比较

方法 创建文件位置 格式
Spring.factories /META-INF/spring.factories Key-Value 对
org.springframework.boot.autoconfigure.AutoConfiguration.imports /META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 要导入的配置类列表

SpringBoot 和 MyBatis 的集成

SpringBoot 和 MyBatis 的集成主要利用了 Spring Boot 的自动配置特性和 MyBatis 的映射特性。通过开启自动配置,系统会在 ConfigurationClassPostProcessor 这个 BeanFactory 的后置处理器中处理 @Configuration 注解的类,并自动根据这些类创建 bean。

总结

通过 Spring.factories 或 org.springframework.boot.autoconfigure.AutoConfiguration.imports,可以灵活地将外部组件纳入 Spring Boot 项目中。这对于整合公共业务组件或其他第三方库非常有用。


maven中如何配置springboot的相关依赖和热启动

maven中配置springboot的相关依赖和热启动的方法如下:1、在maven中配置springboot的相关依赖及热启动,需要在文件中添加springboot的相关依赖。 2、在maven插件中添加spring-boot-maven-plugin插件,用于启动springboot应用。 3、在maven插件中添加spring-boot-devtools插件,用于实现热启动。

运行spring boot有哪几种方式

运行Spring Boot应用的方式主要有三种,分别是通过Spring Boot Maven插件、通过Java命令行运行以及通过Docker容器运行。 1. 通过Spring Boot Maven插件运行这是一种非常常见的方式来运行Spring Boot应用。 当你使用IDE(如IntelliJ IDEA或Eclipse)时,你通常可以直接在IDE中运行你的主应用类。 这背后的机制实际上是IDE在使用Maven或者Gradle插件运行你的应用。 对于Maven,你可以在文件中加入Spring Boot插件,然后通过mvn spring-boot:run命令来运行应用。 2. 通过Java命令行运行如果你的应用已经打包成一个可执行的JAR文件,你可以通过Java命令行工具来运行这个应用。 你需要确保你的系统上已经安装了Java,并且通过运行命令java -jar 来启动应用。 这种方式的优点是可以在任何安装了Java的系统上运行你的应用,无需额外的工具或插件。 3. 通过Docker容器运行这是一种在现代软件开发中越来越流行的方式。 Docker允许你将你的应用以及所有依赖项打包到一个独立的、可移植的容器中,然后这个容器可以在任何安装了Docker的系统上运行。 对于Spring Boot应用,你可以通过使用Spring Boot的Docker支持或者Dockerfile来创建Docker容器。 例如,你可以在Dockerfile中指定如何构建和运行你的Spring Boot应用,然后通过docker build和docker run命令来创建和运行容器。 以上三种方式各有优缺点,选择哪种方式取决于你的具体需求和上下文。 例如,如果你在开发过程中,可能需要通过Maven插件或者IDE来运行你的应用。 如果你的应用需要在不同的环境中运行,那么可能会选择通过Java命令行或者Docker容器来运行你的应用。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Spring

“Springboot之把外部依赖包纳入Spring容器管理的两种方式” 的相关文章

Spring-释放数据传输潜力的数据压缩技术-微服务 (springboot启动)

Spring-释放数据传输潜力的数据压缩技术-微服务 (springboot启动)

简介 随着云原生架构的兴起,微服务已成为可扩展和可维护系统的重要构建块。顾名思义,微服务是小型的、独立的服务,它们共同构成一个完整的系统。当使用微服务构建系统时,尤其是那些具有大量数据交换的系统...

如何在Spring名目中顺利性能MP-MyBatis (如何在springer上下载文献)

如何在Spring名目中顺利性能MP-MyBatis (如何在springer上下载文献)

在Spring名目中集成MP,须要启动以下性能: 1.引入依赖:在名目标pom.xml文件中参与MP相关依赖,例如:```xml<dependency><groupId&g...

比如每日有大量用户访问和数据替换-服务器的带宽需求与网站的访问量密切相关-那么就须要更大的带宽来满足需求-访问量-假设你的网站流量大 (比如每日有大事的句子)

比如每日有大量用户访问和数据替换-服务器的带宽需求与网站的访问量密切相关-那么就须要更大的带宽来满足需求-访问量-假设你的网站流量大 (比如每日有大事的句子)

SpringBeanDefinition元信息定义形式 BeanDefinition是一个蕴含Bean元数据的对象。它形容了如何创立Bean实例、Bean属性的值以及Bean之间的依赖相关。...

Security权限控制框架入门指南-Spring (security)

Security权限控制框架入门指南-Spring (security)

在罕用的后盾治理系统中,通常都会有访问权限控制的需求,用于限度不同人员关于接口的访问才干,假设用户不具有指定的权限,则不能访问某些接口。 本文将用waynboot-mall名目举例,给大家引...

Boot-Spring-与-3.0-加速应用性能的完美融合-GraalVM (bootstrap)

Boot-Spring-与-3.0-加速应用性能的完美融合-GraalVM (bootstrap)

在 2023 年,SpringBoot 3.0 的发布标志着 Spring 框架对 GraalVM 的全面支持。此支持对 Spring 技术栈来说是一项重大补充。 GraalVM 概述...

6-Spring-提供的四种弱小工具-远程接口调用神器 (6sp日常使用还能用多久)

6-Spring-提供的四种弱小工具-远程接口调用神器 (6sp日常使用还能用多久)

1.引见 Spring6是一个十分弱小的框架,它提供了许多工具和接口来简化远程接口调用。其中,WebClient、RestTemplate、HTTPInterface和RestClient是...

Spring-Webflux-Boot-虚构线程性能逊色于-深化比较 (springboot)

Spring-Webflux-Boot-虚构线程性能逊色于-深化比较 (springboot)

早上看到一篇关于SpringBoot虚构线程和Webflux性能对比的文章,感觉还不错。内容较长,抓重点给大家引见一下这篇文章的外围内容,繁难大家极速浏览。 测试场景 作者驳回了一个尽...

揭秘-的暗藏技艺-AOP-从概念到实用场景-Spring (神秘丂丂是什么意思)

揭秘-的暗藏技艺-AOP-从概念到实用场景-Spring (神秘丂丂是什么意思)

环境:Spring5.3.23 1.引见 当天看Spring文档看到这么一个常识点《ControlFlowPointcuts》都不好翻译 官网原文: Springcontr...