问题标签 [spring-boot-configuration]

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 投票
3 回答
17793 浏览

spring-boot - 如何让 Intellij 识别 application.yml 中的属性

我试图让 Intellij 使用 gradle 识别我的属性。我已按照此处的步骤进行操作。所以这意味着我有一个@ConfigurationProperties带有一些属性的带注释的类。

我添加了 spring 依赖项来处理它们:

我添加了插件(我试过不使用插件,只是让它成为编译依赖,没有改变)

当我运行构建时,我看到一个build/classes/java/main/META-INF/spring-configuration-metadata.json文件是根据我的属性创建的。application.yml当我尝试在or中使用该属性时application.properties,Intellij 说它无法解决它。

文档确实说它应该被调用additional-spring-configuration-metadata.json并且可能期望它被调用来处理它,但我没有看到一种方法来使构建名称以这种方式命名,也没有配置 Intellij 以其他方式期望。

有没有人用gradle这个工作?或者这是一个错误。

编辑我创建了一个包含两个项目的存储库来演示这一点。一个用于gradle,一个用于maven。我从 start.spring.io 创建了项目,基本上只是添加了属性配置。我还在这两种情况下都使用了直接编译依赖项,而不是可选的/compileOnly。

我之前没有确认过,但是代码辅助确实适用于 maven,但不适用于 gradle。两者都在各自的构建文件夹中创建spring-configuration-metadata.json一个META-INF。我不完全确定谁没有捡起它。

杂项相关版本

0 投票
1 回答
1289 浏览

spring-boot - 带有 Consul 的 Springboot 执行器

在 Consul 中可以查看 SpringBoot 应用程序中配置的健康状态。

谁能知道让我知道通过 Actuator 在 Consul 中可以看到哪些其他指标(除了健康)?

或者我们可以让 Consul 拉取/调用服务的任何服务/URL,以便可以在 consul 中查看响应?

0 投票
1 回答
1552 浏览

java - RestClientTest 和 NoSuchBeanDefinitionException

我正在尝试使用@RestClientTest来测试一个休息客户端类。

据称:

它将仅应用与其余客户端测试相关的配置(Jackson 或 GS​​ON 自动配置,以及 @JsonComponent bean),而不是常规的 @Component bean。

因此,正如预期的那样,我得到了以下错误:NoSuchBeanDefinitionException对于确实不关心的bean。

有没有办法跳过这些错误?或者我是否为这个特定的测试类或某事配置上下文?

提前致谢。

0 投票
0 回答
51 浏览

spring - Spring 不会从依赖项中加载数据 bean (@Repository)

情况

我有一个模块化的 Spring Boot 应用程序,它目前由 组成applicationProject,其中包括第一个子模块moduleA作为依赖项(maven)。

这允许它applicationProject是一个单独的 java 类,它初始化 Spring 应用程序,其中实际功能由定义为依赖项的模块提供。

我的所有模块以及这些模块applicationProject都位于 base package 下方com.mycompany.myproduct

我的applicationProjectjava 类看起来很简单:

在我的moduleA项目中,我不使用@ComponentScan它的任何注释或扩展。

问题

当我以这种方式启动我的应用程序时,我得到一个UnsatisfiedDependencyException,而 Spring 尝试初始化一个ServiceA它自己依赖于另一个 bean的 bean,这RepositoryA两个 bean 都在moduleA.

这让我假设 Spring 确实检测到了 bean,但没有正确构建依赖关系树,从而导致错误的 bean 实例化顺序。

添加时

对于初始化MyApp类,spring 正确加载 bean 并且应用程序成功运行。

@EnableJpaRepositories对我来说,这似乎是一种解决方法,或者@EntityScan当我已经在SpringBootApplication注释中声明了基本包时,为什么我需要再次声明基本包?

或者这甚至是独立春季项目的缺陷?

0 投票
1 回答
1763 浏览

spring-boot - liquibase 初始化的执行与 application.properties 相矛盾

目前我有一个 SBA(Spring Boot App 1.5.10.RELEASE),它有两个配置属性文件,比如application-default.propertiesapplication-oracle.properties. 此外,这些文件位于src/main/resources最终的 jar 文件中,BOOT-INF/classes/ 其中applilcation-oracle.properties包含如下内容:

application-default.properties看起来很相似,只是spring.liquibase.enabled没有包含它并且包含到本地 PostgreSQL 而不是 Oracle 的连接。

我的 pom 文件中依赖于 liquibase。

所以现在我想通过以下方式开始我的 SBA:

正如预期的那样打印出liquibase初始化正在运行..之后我想像这样启动它:

并期望通过 liquibase 的初始化不会基于给定的发生,spring.liquibase.enabled=false但与我的预期相反,它将通过 liquibase 开始初始化。

所以问题是:我是否疏忽了什么?

0 投票
2 回答
849 浏览

java - 如何读取基于配置属性的值传递?

我有 Spring Boot 应用程序,用户在其中发送参数并基于此参数,应该获取配置。

我创建了文件名配置类型“Configration_Types.properies”,现在如何根据参数传递读取配置我不想创建数据库来查找它?

例如通过type4应该得到配置

类型4

450

680

0 投票
1 回答
851 浏览

database-migration - Flyway afterMigrate.sql 运行两次

因此,我在我的应用程序中添加了 Flyway,以使用嵌入式 H2 运行集成测试。我还添加了一个数据脚本到db/migration/afterMigrate.sql. Spring Boot 自动配置一切正常,直到我使用@SpringBootTest. 此类无法执行,因为 Flyway 尝试afterMigrate.sql再次执行。我似乎无法阻止它运行,我已将flyway-spring-test库添加到项目中并尝试使用它但没有运气。我觉得奇怪的是第二个类没有再次执行数据库迁移,只是 afterMigrate.sql 脚本。

0 投票
1 回答
1070 浏览

spring-boot - 更新 Spring Boot Rest 服务的配置属性的方法

我有一个 spring boot rest 服务,其中配置值存储在 git 中并使用配置服务器获取。部署在 docker swarm 集群中完成,该服务将跨多个容器运行。所以我必须记住的一件事是,当调用执行器的刷新端点时,它会无缝地刷新该服务的所有容器,而不仅仅是任何随机容器。我相信这是一个非常明显的问题。

我可以使用消息代理在 git 中的配置更改时更新服务的配置值。但是,这需要时间,而现在时间并不在我身边。

我提出了两种快速解决方案,并希望根据您的经验来帮助您确定哪种方法比另一种更好。请记住,两者都有效,我对它们都进行了测试。

解决方案 1 在 Application.java 中使用 @Scheduled 创建一个调度程序,并保持每 5 秒 ping 一次执行器的刷新端点。我认为这在生产中非常昂贵且资源密集。

解决方案 2 在控制器方法本身中调用执行器的刷新端点。这样,我按需调用刷新端点,而不是像解决方案 1 那样继续轮询它并且浪费。它还将确保选择任何容器来服务请求,它会刷新自身,因为刷新端点调用只会刷新该容器引用的属性。

你对其中一个有什么偏好吗?您认为这些解决方案有什么优缺点吗?你会选择哪一个,为什么?

请让我知道您的想法。

0 投票
1 回答
2868 浏览

spring - Spring Boot 中的自定义自动配置无法使用 ConditionalOnBean 找到 DataSource

我对 Spring Boot 版本 2.0.1.RELEASE 有疑问(在 Spring Boot 2.0.0.RELEASE 中,以下配置运行良好)。

有人可以帮助我,为什么这个配置不起作用?我有这个配置,这个配置不符合ConditionalOnBean条件。

AutoConfigureOrder//Order似乎AutoConfigureAfter没有任何效果。

spring.factories我有:

此配置的应用程序启动输出:

...

在我看来,配置类是之前评估过DataSourceAutoConfiguration的,这就是找不到 bean 的原因。其他配置,如DataSourceHealthIndicatorAutoConfiguration找到 bean。

0 投票
1 回答
3520 浏览

spring-boot - 在@Configuration 类中使用配置属性

是否期望配置属性类应该在@Configuration类中可用。

环境

  • 春季启动 2.0.2
  • java版本“10.0.1” 2018-04-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10), Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, 混合模式)
  • OSX 10.13.4

我的代码

应用程序-local.properties:

配置属性

配置类

观察到的行为

S3ConfigurationProperties如果我将作为字段注入到配置类或amazonS3实例的方法的参数non-null,但其中的bucketName属性是null

@Value通过也将字符串注入到类中null

我可以让它工作的唯一方法是使用@Value带有字符串注释的方法参数。

这是预期的行为还是可能是错误?