问题标签 [spring-config]

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 回答
9015 浏览

spring - 自动装配不适用于 Spring 中的 ConfigurationProperties bean

我有一个 application.yml 文件,其中包含如下对象列表:

我创建了一个名为MailBoxProperties的 spring 配置类,以便在 bean 中具有这些属性,如下所示:

邮箱属性.java

我想将上面的配置 bean 注入到另一个配置类中,如下所示:

OutlookConnectionManager.java

但是,MailBoxProperties 始终为空,并在从 getMailBoxProperties 调用 mailBoxProperties.getMailBoxes() 时引发空指针异常。

(我试过给@Configuration @EnableConfigurationProperties(MailBoxProperties.class)。它抛出一个异常,说明创建了2个bean。一个带有实际路径,另一个带有null)。我试过@Import(){MailBoxProperties.class}。

但是,注入在我的主应用程序类中完美运行,如下所示:它获取 bean 并正确打印邮箱名称。

邮件应用程序.java

我是否缺少 OutlookConnectionManager.java 中的任何配置?请帮忙。

注意: 我使用的是 Spring boot 1.5.7.RELEASE

谢谢你。

0 投票
0 回答
147 浏览

spring - web.xml 中 contextConfigLocation(s) 之间的关系

我在 web.xml 中定义了contextConfigLocation (s),如下所示:

在 root-context.xml 中,我有

现在,我观察到在servlet-context.xml或其子上下文 xml ( beans:import ) 中配置的 Spring bean 中不需要的任何属性都可以解析,尽管它们在propFile中明确定义并且可以从根上下文解析.xml或其子上下文 xml。

还有,更痛苦的是

如果我在 root-context.xml 中使用mvc:mapping path="/ "** 定义mvc:interceptor ,则不会为请求模式="/rest/*" 调用拦截器。但是,如果在 servlet-context.xml 或其子 xml 中配置,则成功调用相同的拦截器。

如果我遗漏了什么或者这是预期的行为,请告诉我?

环境

Java 版本:1.8.0_60,供应商:甲骨文公司

操作系统名称:“windows 7”,版本:“6.1”,arch:“amd64”,家族:“dos”

io.spring.platform:platform-b​​om:Brussels-SR3 将我的大多数 Spring 依赖项(例如 spring-context、spring-beans 等)的版本解析为4.3.9.RELEASE

0 投票
5 回答
310 浏览

java - 在 Spring 启动时执行方法

我想在应用程序启动期间(或更确切地说是在结束时)执行一些代码。我发现有几个资源使用@PostConstruct 注释、@EventListener(ContextRefreshedEvent.class)、实现 InitializingBean、实现 ApplicationListener...它们都在启动时执行我的代码,但应用程序属性的占位符并没有被替换片刻。因此,如果我的类有一个带有 @Value("${my.property}") 注释的成员,它会返回 "${my.property}" 而不是 yaml(或任何地方)中定义的实际值。替换发生后我如何完成执行我的代码?

0 投票
0 回答
690 浏览

spring-cloud - Spring Cloud Config 不断检查 master 分支

我遇到了 Spring Cloud Config 的问题。我有一个带有我的配置文件的远程 git repo,它被克隆到本地以进行本地测试。

我的项目有 4 个 bootstrap.yml 文件,如下所示

引导程序.yml

引导-dev.yml

引导本地.yml

引导远程.yml

远程仓库有一个主分支和一个开发分支。当我在本地结帐开发并启动我的配置服务时,它会签出主分支。

为什么会发生这种情况,我该如何阻止它?我正在开发配置文件和本地配置文件中启动配置服务,该配置文件使用 bootstrap-dev.yml 中看到的“开发”标签。

0 投票
0 回答
1768 浏览

spring-boot - 使用 @Async 方法创建 bean 时出现代理错误

我已经编辑了这个,因为我意识到我误诊了错误的原因。该错误是因为我在由 bean 实例化的抽象类中有一个异步方法。我已将此方法添加到下面的抽象类中。如果我注释掉 @Async 注释,代码将构建并“运行”。这给了我现在可以查看的地方,但我会留下这个问题,以防有人可以帮助并让我更快地启动和运行!

我正在尝试重构使用 xml 配置以使用 SpringBoot 和代码配置的 java/spring 应用程序。对我来说,这是一条非常古老的学习曲线。

我遇到了一个错误,我认为该错误记录得很好,但我无法理解文档。本质上,一个 bean 被创建,然后在另一个 bean 的构造函数中使用。将其移至代码配置时出现的错误是...

从一些谷歌搜索来看,我认为这与将一个 bean 传递到另一个 bean 的机制有关,因此这个 bean 成为代理 bean。

所以xml配置是这样的......

这很好用(Spring 4 MVC java 8(从 7 升级,代码转换最少)。

到目前为止的代码配置看起来像这样

AsyncAccountReader 没有引起任何问题当我包含基于抽象类的类的编写器时出现错误(上图),因此沿着这些线

界面

抽象类

具体类

因此,如果我包含太多或削减太多以试图指出相关内容,请道歉。

关键是我认为如果我删除 @Async 注释,代码会构建并运行,否则我会收到上面的错误。谁能告诉我为什么这是一个问题,并指出我实施解决方案的写作方向?

0 投票
2 回答
968 浏览

java - 有什么方法可以将注释的值传递给我在 Spring Boot 中的配置?

我有一个配置,它是@Import由注释编辑的。我希望配置可以访问注释上的值。这可能吗?

配置:

注释

如何在我的配置中获得下面传递的值?

0 投票
1 回答
2004 浏览

java - 停止 spring boot 应用程序启动,直到 spring cloud config server 启动

我正在尝试使用以下属性集运行我的 Spring Boot 应用程序,并且我希望它继续重试从配置服务器加载属性 50 次,在任何两次尝试之间等待 6 秒,即使之后它也无法连接到配置服务器,它应该恢复启动或退出(我对重试后弹簧引导能够做的任何事情都漠不关心)。但它的行为似乎不像预期的那样。

我的启动命令 -

但是我遇到了以下错误,因为它在一次尝试后恢复了启动。

说明

无法确定数据库类型 NONE 的嵌入式数据库驱动程序类

行动

如果您想要一个嵌入式数据库,请在类路径中放置一个受支持的数据库。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有配置文件处于活动状态)。

0 投票
0 回答
516 浏览

spring - 使用spring java config为不同包中的bean自动装配不起作用

我正在尝试实现一个简单的 Spring AOP 示例。

用例:

我有一个带有艺术家、标题等属性的光盘 (SgtPeppers) 类。它有一种播放特定曲目的方法。我创建了一个方面来计算播放曲目的次数。我有一个测试类来测试它。

问题:

光盘类与方面和测试类在不同的包中。使用 spring java config 方法配置 Bean。但是,自动装配似乎不适用于光盘类。它抛出 BeanCreationException。

请在下面找到代码: 光盘类(这里,它被配置为 SgtPeppers)

TrackCount 方面:

跟踪计数器配置:

TrackCounterTest:

在这里,SgtPeppers 类位于 com.springinaction.soundsystem.autoconfig 包中。TrackCounter 和 TrackCounterconfig 在 com.springinaction.aspects.concert.config 包中。我得到以下异常:

org.springframework.beans.factory.BeanCreationException:创建名为“com.springinaction.aspects.concert.trackCounter.TrackCounterTest”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com.springinaction.soundsystem.autoconfig.SgtPeppers com.springinaction.aspects.concert.trackCounter.TrackCounterTest.sgtPeppers;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到 [com.springinaction.soundsystem.autoconfig.SgtPeppers] 类型的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注释: org.springframework.beans.factory 中的 {@org.springframework.beans.factory.annotation.Autowired(required=true)}。RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run( RemoteTestRunner.java:382) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 原因:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com。 springinaction.soundsystem.autoconfig.SgtPeppers com.springinaction.aspects.concert.trackCounter.TrackCounterTest.sgtPeppers;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到 [com.springinaction.soundsystem.autoconfig.SgtPeppers] 类型的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注释: org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:509) 中的 {@org.springframework.beans.factory.annotation.Autowired(required=true)}。 beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:290) ... 26 更多原因:org.springframework.beans .factory.NoSuchBeanDefinitionException:没有为依赖找到类型 [com.springinaction.soundsystem.autoconfig.SgtPeppers] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖的自动装配候选者。依赖注解:{@org.springframework.

注意:我已经尝试使用 basePackages、basePackageClasses 进行 ComponentScan。但是,它没有用。我不使用 Spring Boot 配置,因为它是出于学习目的。

我在 com.springinaction.aspects.concert.config 包中创建了相同的 SgtPeppers bean。自动装配工作。为什么 bean 创建的 java config 方式不适用于不同包中定义的 bean?

任何建议都会有所帮助。

谢谢。

0 投票
4 回答
1239 浏览

spring - Spring Framework 5.0.0.Final 父上下文未加载

我正在尝试使用最新的 spring 5.0.0.Final 和我的 EAR 项目,该项目在web.xml中使用context-param定义了一个父上下文 ,参数名称为 locatorFactorySelectorparentContextKey但 spring 无法加载父上下文。当我检查ContextLoaderListener源代码时,似乎没有应用逻辑来选择父上下文。这里我的问题是spring 5是否提供任何默认的ContextLoader实现来满足父上下文的加载或spring 5丢弃,如果不是支持这个的方法是什么,我是否必须实现我们自己的?

0 投票
2 回答
89 浏览

spring - 使用 Git 的 Spring 配置服务

我将为我们的微服务架构使用 Spring Config Service (SCS)。目前,我们的云堆栈位于 AWS 上。由于 SCS 将在 Docker 上运行,这要归功于 Pipeline + Cloud Formation,并且我们的配置存储库将位于具有加密值的私有 GitHub 存储库上:

  1. 是否有任何最佳实践来刷新将在 Docker 中“拉取”的存储库?
  2. 如何在任何实例上更新它?(因为我的服务将使用 HA 进行负载平衡)。