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

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

admin4个月前 (05-11)数码22

在 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名目中顺利性能MP-MyBatis (如何在springer上下载文献)

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

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

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

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

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

b-b-核心原理拆解与源码分析-2.0-Spring-Boot-深度实践 (核心b类期刊有哪些)

b-b-核心原理拆解与源码分析-2.0-Spring-Boot-深度实践 (核心b类期刊有哪些)

SpringBoot是一个基于Spring的轻量级框架,它简化了Spring应用程序的创建过程,使得开发者能够快速搭建一个可运行的应用程序。随着SpringBoot2.0版本的发布,其功能和性能得...

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 概述...

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

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

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

使用Spring-Cloud和Java构建强大而灵活的微服务-十个实践案例 (使用spring框架的好处是什么)

使用Spring-Cloud和Java构建强大而灵活的微服务-十个实践案例 (使用spring框架的好处是什么)

在使用构建微服务时,许多人认为只要学习一些微服务设计模式就足够了,比如 CQRS、SAGA 或每个微服务一个数据库。虽然这是正确的,但同时学习一些通用的最佳实践也是很有意义的。本文分享一些最佳实践...

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

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

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