问题标签 [spring-boot-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
341 浏览

jackson - Spring 在何处/何时使用项目配置中定义的 Jackson2ObjectMapperBuilderCustomizer bean?

我的主要问题是:Spring 在哪里/何时使用(注入)在项目的 @Configuration 类中定义的 Jackson2ObjectMapperBuilderCustomizer bean——你能指导我到代码行吗?这里的指示看起来我需要做的就是定义该 bean 来控制响应在 JSON 中的序列化方式,但它不起作用——即我不能禁用任何 SerializationFeatures。

一些背景:

  • spring-boot 2.1.1 发布
  • spring-webmvc-5.1.3.release
  • 杰克逊 2.9.7

我写了一个 REST api (@RestController)。我无法自定义 Jackson 在 http 响应中序列化 Java Instant 类型的方式。我尝试了在我的配置中定义 ObjectMapper bean、MappingJackson2HttpMessageConverter bean 和 Jackson2ObjectMapperBuilderCustomizer bean 的各种组合(不是一次全部):

当我调试应用程序时,看起来 RequestMappinghandlerAdapter 的转换器由 WebMvcConfigurationSupport 初始化,但所有这些转换器都是手动实例化的,而不是被注入的。也就是说,所有的 MappingJackson2HttpMessageConverter 都是通过调用“new MappingJackson2HttpMessageConverter()”创建的,这反过来又简单地创建了库存的 Jackson2ObjectMapperBuilders 和 ObjectMappers:

处理响应的 HttpEntityMethodProcessor 使用相同的转换器。我找不到 Jackson2ObjectMapperBuilderCustomizer 在此生命周期中的哪个位置执行自定义。我知道我一定错过了什么,但我一直找不到。

0 投票
2 回答
2737 浏览

java - java.lang.UnsupportedOperationException:此功能需要 ASM8_EXPERIMENTAL

我尝试使用 spring boot + jdk14(records) + junit5 + maven 运行应用程序,但不幸的是,我无法解决 asm 的问题。在互联网上,我只能找到这个asm GitLab 提交。Afaik 这是一个实验性功能,没有官方版本。那么,在 jdk14 上运行项目的方式是什么?

在下面的堆栈跟踪中找到:

0 投票
1 回答
658 浏览

java - 在 Spring Boot 2.2.5 应用程序中上传文件时出现 MalformedStreamException

在我的应用程序中将 Spring Boot 从 2.2.4 升级到 2.2.5 后,使用multipart/form-data表单上传文件时出现以下异常:

表格如下所示:

控制器看起来像这样:

0 投票
1 回答
559 浏览

java - 如何为同一个 Feign 客户端界面的不同配置文件切换 2 个注释

如何为同一个 Feign 客户端界面的不同配置文件切换 2 个注释?

我使用了一个 Feign 客户端接口,它在与负载均衡器 url 一起使用时具有以下代码。我称之为非尤里卡供参考:

另一方面,我在使用 Eureka 和 Spring Cloud Gateway 时使用以下代码:

现在我的要求是通过诸如 Spring Profile 之类的东西来控制它们,这样如果配置文件名称 =“Eureka”,则 Eureka 注释处于活动状态,否则非 Eureka 处于活动状态。

我必须以某种方式在单个接口名称中执行此操作,因为我使用它如下:

请让我知道是否以某种方式使用@Profile, @ConditionalOnProperty或其他任何方法有助于解决我的目的。我正在使用 Spring-boot 2.x 和 Java 8

编辑 请注意在 Eureka 案例中我使用pathvalue属性,在非 Eureka 案例中我使用 name 和 url 属性,这就是问题所在。

0 投票
1 回答
638 浏览

maven - Prometheus 指标没有给出路径变量值

来自 Spring Boot 应用程序的代码示例,它正在生成普罗米修斯指标。

我正在尝试使用http://localhost:8080/myApi/ABC访问它。

但是在普罗米修斯指标中,它使用"uri=/myApi/{refNum}"生成指标。

Promotheus 指标:

控制器:

Pom.xml

0 投票
1 回答
1326 浏览

java - 如何在 Log4j2 中自定义或删除默认属性 - JSON 布局

Spring Boot 2应用程序中,我Log4j2配置JsonLayout如下

我得到如下输出

输出很好,但我不想要“endofBatch”、“threadPriority”等属性,但它会显示在日志中,如何避免JsonLayout基于日志中不需要的(默认)属性。

0 投票
0 回答
54 浏览

spring-boot - Spring Boot2.0 - @SessonScope 无法更新且未反映在 HttpSession 中

在 Spring Boot1.5 中,可以使用 @SessionScope 更新实例。但是,当使用 Spring Boot 2.0 时,该值不会更新,它仍然为 null。

会话范围的组件:

控制器:

调试结果

0 投票
1 回答
252 浏览

java - java测试编译错误:将spring boot 1.0升级到2.0时出现'bad signature ¾4s9'

我有一个这样的gradle项目:

projectA 正在将 springboot 1.0 升级到 2.0
projectA gradle.build 是这样的:

并且 projectB 测试依赖于项目 A
projectB gradle.build 是这样的:

运行 ./gradlew :projectB:test 时发生编译错误
糟糕的签名¾4s9

错误信息是:

TestSupport.java 在 projectB
中,QueryManager 在 projectA 中。并且 querymanager 类使用 lombok 和 ea.async。

TestSupport.java 的内容是:

我搜索了很多,但找不到任何有用的东西。

0 投票
3 回答
14435 浏览

prometheus - Prometheus config doesn't work with Spring boot 2.3.0: ClassNotFoundException: io.micrometer.prometheus.HistogramFlavor

Application was working correctly with version 2.2.6 but as the application is upgraded to latest version of spring boot 2.3.0 it stopped working and fails during startup.

2020-05-20T08:43:04.408+01:00 [APP/PROC/WEB/0] [OUT] 2020-05-20 07:43:04.407 ERROR 15 --- [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webMvcMetricsFilter' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]: Unsatisfied dependency expressed through method 'webMvcMetricsFilter' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'compositeMeterRegistry' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/CompositeMeterRegistryConfiguration.class]: Unsatisfied dependency expressed through method 'compositeMeterRegistry' parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'prometheusMeterRegistry' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfiguration.class]: Unsatisfied dependency expressed through method 'prometheusMeterRegistry' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'prometheusConfig' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfiguration.class]: Unsatisfied dependency expressed through method 'prometheusConfig' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'management.metrics.export.prometheus-org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusProperties': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusProperties] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@4f3f5b24]

Can see below class not found exception at the bottom of start trace. enter image description here

0 投票
1 回答
1023 浏览

java - JPA - 如果已获取父项,则 JpaRepository 子记录具有父 ID 而不是实体记录

我仍在掌握 JPA 概念,似乎无法在任何地方找到我的问题的答案!

认为

两个类都用@GeneratedValue(strategy = GenerationType.IDENTITY)注解,都有getter和setter。

然后我实现了标准的 JpaRepository 并设置了我的控制器

这是问题
当我查询所有子记录时,只有映射到特定父项的第一个子记录才会包含父实体对象。其余的将有一个引用父实体的 id。

这是一个示例:从 POSTMAN 获取所有子节点返回:

正如你所看到的,child2只有"parent": 1从那以后child1首先映射到那个父级!同样child4只有"parent": 2从那以后child3首先映射到那个父级!

谁能解释一下这种行为?我试过fetch = FetchType.EAGER父母,但没有帮助!我希望所有的孩子都有一个全面的父对象来防止另一个 DB 之旅。

提前致谢!

用实际课程更新问题:


家长

孩子