为什么springinitializr让项目继承spring-boot-starter-parent而不是使用spring-boot-dependency
当使用 spring initalizr 创建项目时,pom.xml 继承自 spring-boot-starter-parent: 当使用 spring initalizr 创建项目时,pom.xml继承自spring-boot-starter-parent: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> 与在spring-boot-dependencies中指定<dependencyManagement/>相比,这似乎不太灵活,因为如果我们需要使用生成的结构作为多模块项目的子模块,或者使用公司范围的父模块,我们需要将BOM移动到提到的部分: <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 使用 spring-boot-starter-parent 作为父级而不是在创建时立即声明 <dependencyManagement/> 部分是否有任何具体原因? 有人投票决定关闭问题,坚称这是基于意见的,但事实并非如此。 插件配置的存在(顺便说一句,乍一看这些配置的目的是为了修复maven插件的一些“小故障”,但是,其中一些配置不再需要了,例如:https://github.com/maven-plugin)。 com/JetBrains/kotlin/pull/1501)并不是以下之间的唯一区别: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> 和 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 在第一种情况下,maven 项目通过父子关系继承 dependencyManagement,因此,由于 spring-boot 团队通过 properties 部分定义依赖项版本,子项目也可以通过 properties 部分覆盖依赖项版本,例如如果我们的目标是更改 spring-framework 的版本而不更改 spring-boot 的版本,我们可以定义如下内容: <properties> <spring-framework.version>6.0.15</spring-framework.version> </properties> 这显然在第二个配置的情况下不起作用 - maven 只是从 independentBoM 导入 dependencyManagement 部分。 尚不清楚哪种方法“更灵活”(我们更愿意同时避开这两种方法),但是它们与依赖管理的角度也不同。
grpc-spring-boot-starter - 如果我将 spring-boot-starter-jdbc 添加到依赖项中,netty 服务器不会启动
我开始用spring boot测试grpc,我使用net.devh中提供的GrpcService:grpc-spring-boot-starter(https://yidongnan.github.io/grpc-spring-boot-起动器/en/)。 它隔离效果很好...
Springboot 3.2.1(使用 Jetty)和 graphql-spqr-spring-boot-starter 1.0.0 出现错误
刚刚将 Spring Boot 升级到版本 3.2.1(使用 Jetty)并开始出现以下错误。知道如何解决这个问题吗?或者 graphql-spqr-spring-boot-starter:1.0.0 仅与旧版本兼容...
Spring boot + slf4j + log4j + 类 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为类
我有Spring boot 2.3.1 pom.xml 我有Spring boot 2.3.1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>logger</groupId> <artifactId>logger</artifactId> <version>0.0.1-SNAPSHOT</version> <name>logger</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> <lombok.version>1.18.12</lombok.version> <log4j.version>1.2.17</log4j.version> <slf4j.version>1.7.30</slf4j.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 班级 @Slf4j @SpringBootApplication public class LoggerApplication { public static void main(String[] args) { log.info("++++++++++++++++++++++++TEST+++++++++++++++++++++++++++++"); SpringApplication.run(LoggerApplication.class, args); } } 应用程序.属性 logging.config=classpath:log4j.properties log4j.properties log4j.rootLogger=INFO, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n 我尝试寻找解决方案,查看论坛上的类似主题,尝试各种排除依赖项的选项。 线程“main”中的异常 java.lang.ClassCastException:类 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为类 org.apache.logging.log4j.core.LoggerContext (org.apache.logging.slf4j.SLF4JLoggerContext 和 org.apache.logging.log4j.core.LoggerContext 位于未命名模块中 加载器“应用程序”)位于 我还尝试排除一些依赖项 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> 但又出现错误,但现在无法再格式化日志了。 2021-01-13 19:12:15,881 信息 - ++++++++++++++++++++++++测试+++++++++++++++++++++++++++++++ 错误 StatusLogger 无法识别的格式说明符 [d] 错误 StatusLogger 无法识别的转换说明符 [d] 从转换模式中的位置 16 开始。 错误 StatusLogger 无法识别的格式说明符 [线程] 错误 StatusLogger 无法识别的转换说明符 [线程] 从转换模式中的位置 25 开始。 错误 StatusLogger 无法识别的格式说明符 [级别] 错误 StatusLogger 无法识别的转换说明符 [level] 从转换模式中的位置 35 开始。 ... 错误 StatusLogger 无法识别的格式说明符 [n] 错误 StatusLogger 无法识别的转换说明符 [n] 从转换模式中的位置 56 开始。 警告:不支持 sun.reflect.Reflection.getCallerClass。这会影响性能。 任何人都可以有任何想法如何解决它吗? 我找到了解决这个问题的方法。事实证明,问题出在其中一个私有库(elastik 的附加程序)的冲突上。 我执行了命令: mvn dependency:tree 然后找到传递依赖项,并将它们排除在所有类的路径上,以排除日志记录所需的库冲突。 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>log4j-to-slf4j</artifactId> <groupId>org.apache.logging.log4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <artifactId>springfox-boot-starter</artifactId> <groupId>io.springfox</groupId> <version>3.0.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${version.log4j.core}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency>
Spring Boot 集成测试抛出错误“java.lang.IllegalStateException:阻塞读取超时 5000 毫秒”
问题发生在我通过 Spring boot 2.0.0.M3 使用 Spring webflux 的项目上。以下是项目的依赖项, 依赖项{ 编译 'org.springframework.boot:spring-boot-starter-
本地运行测试时如何禁用 Spring Cloud Google Secret Manager 4.x+?
我们使用的是 spring boot 3.2,我们正在尝试将 spring-cloud-gcp-starter-secretmanager 从版本 3.2.1 升级到 4.9.0。当我们这样做时,我们的集成测试会失败,并显示: java.lang.
大家好,目前我正计划将具有 spring 版本 4.0.6 和 java 8 的独立 spring 应用程序迁移到具有 java 11 的 Spring boot 应用程序。所以,继续使用 spring boot
Jaxb2Marshaller 与 Spring boot 3+ 和 Jaxb 4 兼容吗?
我正在将我的项目从 Spring Boot 2.7 升级到 Spring Boot 3.1。在这个项目中仍然使用 SOAP,因此我们依赖 Jaxb 和 spring WS。 我正在使用 com.helger.maven 生成 Java 类:
如何在Spring Boot 3和Spring Framework 6中注册拦截器
我正在使用 Spring Boot 3.1.0-SNAPSHOT 构建后端,它使用 Spring Framework 6x。 拦截器: @Slf4j 公共类 MyInterceptor 实现 HandlerInterceptor { @覆盖 公众嘘声...
Spring Boot api 在多次成功的 200 响应后给出 403
我有一个 Spring Boot 应用程序,它使用 spring security 作为依赖项。我正在将 Spring boot 版本从 2.7.16 迁移到 3.2.1。在 2.7.16 版本中一切正常。但在 3.2.1 中,其余 API 都...
Spring Boot JSP 404.Whitelabel 错误页面
无法使用 spring-boot 加载非常简单的 JSP 页面,出现 404 Not Found HmisApplication.class @SpringBootApplication 公共类 HmisApplication 扩展 SpringBootServletInitializer { @覆盖
Java Spring Boot 风格的 Web 服务有点新鲜——所以请保持温柔。为什么大多数 Spring Boot 控制器示例没有显示捕获任何异常?我看到我的一些同伴正在开发...
Spring Boot @PutMapping 消耗多部分/表单数据不起作用
我在 Spring Boot (v2.7.15) 中使用 Java 11 有以下端点: @PutMapping(值 = "/{id}", 消耗= MediaType.MULTIPART_FORM_DATA_VALUE, 产生=媒体类型。
我正在将我的项目从旧启动 1.x 升级到 2.3.12,几乎完成,但有一件事是 make 问题。 在这个项目中我使用了freemarker,因此升级了boot并使用了starter-freemarker。 服务器即将上线...
Spring Boot 3.4.0 让 JPA/Hibernate 的集成测试失败
我们已从 Spring Boot 3.3.6 更新到版本 3.4.0。现在,我们的集成测试(注释 @SpringBootTest)与 Hibernate/JPA 交互(我们使用 spring-data-jpa)突然失败。 @测试
在 Spring Boot 3.2.0 中使用 JdbcTemplate 将 Java LocalDate 持久化到 Oracle DATE 列时出现意外的时间组件插入
在 Spring Boot 3.2.0 中使用 JdbcTemplate 将 Java LocalDate 值保留在 Oracle DATE 列中时,我们遇到了意外行为。 在升级到 Spring Boot 3.2.0 之前,时间
使用 Hibernate - Oracle DB 在 Spring Boot 2.3.5 版本中设置 JPA 方法的超时
我正在使用 Spring Boot 2.3.5 版本和 Oracle 12c DB,并使用 Spring Boot 数据 jpa/hibernate 执行数据库操作。 有时数据库操作需要更多时间,我需要设置时间...
Springdoc 可与 war 配合使用,但嵌入耳朵后无法启动(Wildfly31 + JDK17)
我使用的是spring-core 6.1.5,springdoc-openapi-starter-webmvc-ui 2.5.0。当我将应用程序打包为 war 并部署到在 JDK17 上运行的 Wildfly31 时,它工作正常,我能够访问...
Spring Boot:3.2.0,Kotlin:1.9.21,构建映像:maven:3.9.5-amazoncorretto-21,运行映像:amazoncorretto:17 我有一个非常简单的 Spring Boot 项目 @SpringBootApplication 类演示应用程序 有趣
Spring Boot Keycloak docker-compose
当 Docker 容器中的 Spring Boot 应用程序尝试访问 Keycloak Docker 容器时,我遇到问题。我使用 docker-compose 创建了它们。以下是文件: 版本:“3.8”
我正在使用 Spring Boot 实现基本的员工管理 CRUD API。 以下是我希望您关注的实体和服务。 我正在尝试创建这种双向关系:员工
Spring Boot ConflictingBeanDefinitionException:@Controller 类的注解指定的 bean 名称
我在 Spring boot 应用程序中不断收到 ConflictingBeanDefinitionException 错误。我不完全确定如何解决这个问题,我有几个 @Configuration 注释的类有助于...
我在 Spring Boot Web 客户端发送请求正文时遇到一些问题。尝试发送如下所示的正文: val 主体 = "{ ” + "\"电子邮件\":\"[email protected]\", ” + “\”id\“:...
bean“mvcHandlerMappingIntrospectorRequestTransformer”无法注册。具有该名称的 bean 已被定义并覆盖 i
环境:Spring Boot 3.2.1、JDK 21、GraalVM、Spring Native、Spring Security。错误 微软Windows [版本10.0.22631.2861] (c) 微软公司。版权所有。 。 ____ ...
从 Spring Boot 3 中的 OAuth2RestTemplate 迁移 - 有哪些替代方案?
在迁移到 Spring Boot 3 之前,我们在一项服务中使用了 OAuth2RestTemplate,效果非常好,特别是当外部服务的响应为“401 invalid_token”时。这个
Spring Boot - Web Sockets - 测试
我在 Spring Boot 中有一个简单的服务器。我想实现并测试我的 Web 套接字连接,但如果我想订阅端点“/topic/resources”,超时将在 30 秒后超时。消息发送
Spring boot 3.2中新的RestClient,如何记录传出的请求和响应?
我找不到如何在 application.yml 中配置日志级别以启用记录 Spring boot 3.2 中新的 RestClient 发送的请求和响应。 我知道我可以使用
更新到 Spring Boot 3 后,日志记录不再起作用。没有行被写入日志文件。我在资源文件夹中有文件 logback-spring.xml 。该文件也存在于 jar 文件中...
使用 Spring boot + WebFlux 进行全局错误处理
在 Spring boot Rest 控制器中使用反应式编程时,我们如何全局处理异常? 我认为 @ControllerAdvice 不会工作,因为我已经尝试过这个但它不成功......
Kotlin/Spring Boot 应用程序无法使用 Docker 在 Maven 中构建
我正在尝试为 Kotlin/Spring Boot 应用程序构建一个映像。但是当我运行 docker build 时出现以下错误: [错误] 无法执行目标 org.jetbrains.kotlin:kotlin-maven-plugin:1.7.20:
@EnableAutoConfiguration(exclude =...) 在 Spring Boot 2.6.0 中测试失败
我尝试将我的 data-mongo 示例项目升级到 Spring Boot 2.6.0。有一个测试旨在针对 Testcontainers 运行,我还包含了用于其他测试的嵌入式 mongo dep,所以我必须...
“org.springframework.boot.web.server.LocalServerPort”已弃用
自 Spring boot 2.7.1 起,@LocalServerPort(在 org.springframework.boot.web.server.LocalServerPort 包中)已被弃用。 我可以用什么来代替这个注释?
我的控制器中所有 @FXML 属性均为 NULL(SPRING BOOT - JAVA-FX 集成)
我正在开发一个会员管理软件,我使用的是spring boot,spring data与JAVA-FX集成。 一切都很好,直到我创建了一个视图,其中有一张包含所有拥护成员的表格
GraphQL Spring Boot 中使用 @BatchMapping 的参数
在带有 BatchMapping 的 Java Spring Boot 中,我想知道如何访问参数。以下是该架构的部分内容: 类型查询{ 用户(用户名:字符串!):用户 } 类型用户{ 用户名:字符串!...
假设我有一个Spring Boot项目,基于SpringBoot,在pom.xml中包含以下依赖项: <
IntelliJ Idea Spring boot 应用程序在 Temp 中创建 tomcat 文件夹
我在 IntelliJ Idea 中遇到 Spring Boot 项目问题 - 每次我通过 IDE 启动项目时,Tomcat 都会在 appdata\local emp 中创建名为“tomcat.8080.X\work\Tomcat\localhost...”的新工作目录。
Websockets 和 Spring Boot Security 的错误 401
我正在使用 Spring Boot 3.1.0,我正在尝试在我的应用程序中实现一些 websockets。我正在按照互联网上的教程来实现它们并生成一些统一的测试以确保......
Spring security 6.2 JSESSIONID 未返回
我正在使用 Kotlin 创建一个 Spring Boot 应用程序。我已经将 WebSecurity 配置为: @配置 类安全配置{ @Autowired Lateinit var dataSource: 数据源 @值(...
我正在开发一个 Java Spring Boot 项目。我有一个有 20 个字段的实体。我目前有一个 put 方法,它接受这 20 个字段,所有这些字段都是非空的,我使用 valid...
最近我正在使用 Spring boot 框架和 Kotlin。使用 GET 方法一切都OK。但是,当使用 POST 方法注册新用户时,我遇到了一些问题,状态为错误请求
Spring Boot 3.1.X及以上版本的Kafka客户端连接问题
我最近将我的一项 Spring Boot 服务升级到 3.1.x,升级后我遇到了 kafka 问题。它似乎无法连接并不断向我提供以下日志。 2024-01-03T06:18...
Spring Boot 3.2.1 GitHub OAuth2 检查某人所在的组织/团队
我一直在努力让我的 Spring Boot 项目能够使用某种 GitHub OAuth2 登录。当我在默认情况下运行它时,我想检查某人所在的组织和团队,以检测...
从 2.7.17 迁移到 Spring Boot 3.2.1 后出现意外的 404 而不是 400
在我们的项目中,我们使用 Spring Boot 2.7.17、OpenAPI 规范和 RestAssured 进行测试。这是根据我们的规范生成的 API 接口的一部分: @请求映射( 方法 = RequestMethod.GET,...
问题是我们无法在运行时使用 Spring-Boot 在 SMSMessage 和 EmailMessage 之间切换
我们有以下代码。出现此问题的原因是我们无法使用 Spring Boot 在运行时在 SMSMessage 和 EmailMessage 之间切换。目前,我们需要修改 spring.profiles.active=...
通过 Maven Spring Boot 插件运行应用程序时如何设置 Java Xmx 标志?
我正在使用 mvn spring-boot:run 运行应用程序。我正在尝试按照此处所述设置 Xmx 标志: mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xmx512m" 但它不...
我正在尝试在 AWS Lambda 中运行 Spring Boot 应用程序(例如,各种示例使用与 https://www.baeldung.com/spring-boot-aws-lambda 基本相同的方法 - 只需复制代码和...
在 VSCode 中使用 Spring Boot 和 IBM DB2 的编码问题
我正在编写一个与 DB2 数据库交互的 Spring Boot 应用程序。到目前为止,我已经能够映射实体、创建存储库等等。一切正常。 问题出在注册表上
使用 mysql db 运行 spring boot 应用程序的 docker compose 时退出状态 1
我正在尝试文档化 Spring Boot 的应用程序,该应用程序也使用 mysql 数据库 下面是docker文件 FROM maven:3.8.3-openjdk-17 AS 构建 暴露8081 添加/target/oks-0.0.1-SNAPSHOT.jar...
我依赖于具有 @ConfigurationProperties(前缀=“foo.web.auth”) @盖特 公共类 WebAuthConfigurationProperties { 私有最终字符串端点; 私人...
我正在使用 Spring Boot 3 开发一个多租户应用程序,其中每个租户都有一个单独的数据库,并且有一个中央数据库来管理租户及其各自的用户。基本上...