当前位置:首页 > 数码 > 正文内容

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

admin2年前 (2024-05-11)数码342

在 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容器管理的两种方式” 的相关文章

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

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

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

事务传播行为-Spring-七种类型一览 (spring事务传播行为)

事务传播行为-Spring-七种类型一览 (spring事务传播行为)

简介Spring事务传播性是指在Spring环境中,当多个包含事务的方法嵌套调用时,每个事务方法如何处理事务上下文中的提交或回滚行为,传播性行为Spring中定义了7种事务传播性行为,分为以下三类,支…

极致便当与卓越容错-Topic-Spring-重试-成功-运用-Kafka (极致餐是什么意思)

极致便当与卓越容错-Topic-Spring-重试-成功-运用-Kafka (极致餐是什么意思)

概述Kafka的弱小性能之一是每个分区都有一个Consumer的偏移值,该偏移值是消费者将读取的下一条信息的值,可以智能或手动参与该值,假设咱们因为失误而不可处置信息并想重试,咱们可以选用手动治理,并…

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

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

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

Spring-Boot-Starter原理详解-b-b (springernature)

Spring-Boot-Starter原理详解-b-b (springernature)

SpringBootStarter是一种包含了一组特定功能和依赖关系的依赖项,旨在为特定的应用程序场景提供快速集成和开箱即用的功能,主要用于将常用的功能模块打包成一个可重用的依赖项,开发者只需引入相应…

容器启动有效的交互-Spring-如何利用-框架提供的才干-让-Bean-深化了解并与-Spring (容器启动过程)

容器启动有效的交互-Spring-如何利用-框架提供的才干-让-Bean-深化了解并与-Spring (容器启动过程)

Spring有一个特点,就是创立进去的Bean对容器是无感的,一个Bean是怎样样被容器从一个Class整成一个Bean的,关于Bean自身来说是不知道的,当然也不须要知道,也就是Bean对容器的存在…

Boot中高效成功订单30分钟智能敞开的战略指南-Spring-源代码揭秘 (high boot)

Boot中高效成功订单30分钟智能敞开的战略指南-Spring-源代码揭秘 (high boot)

形式一,经常使用定时义务代码成功如下,首先,咱们定义一个实体类Order,蕴含基本信息以及订单的创立期间,@EntitypublicclassOrder,@Id@GeneratedValue,stra…

Security-Spring-守护运行程序安保的强力武器 (securitycode翻译)

Security-Spring-守护运行程序安保的强力武器 (securitycode翻译)

SpringSecurity作为一特性能弱小的安保框架,为运行程序提供了片面的安保保证,包含认证、授权、防护和集成等方面,本文将引见SpringSecurity在这些方面的特性和长处,以及它在Java…