问题标签 [spring-context]

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

java - 如何将 Spring Boot Environment bean 注入自定义 Spring xml bean?

我使用spring boot @Configuration 类注释创建了一个bean,如下所示

在其中一个应用程序中,我使用 Spring XML 创建 bean,然后使用 Spring boot 加载它们,我试图在 XML 中创建相同的 bean,但它不起作用,我在下面尝试

如何在 Spring XML 中创建等效的基于 Java 的 bean?

春季版本:5.2.4.RELEASE 春季启动版本:2.2.5.RELEASE

0 投票
1 回答
33 浏览

spring-boot - 在 Spring Boot 应用程序中创建一个类的 bean?

我正在尝试直接从 Spring 引导应用程序中超出实体管理器。但是我无法创建包含我需要的方法的类的 bean。我指的是下面的文章。

https://dzone.com/articles/accessing-the-entitymanager-from-spring-data-jpa

ProductCategoryRepositoryCustom 接口:-

ProductCategoryRepositoryImpl实现ProductCategoryRepositoryCustom :-

配置类:-

毕竟,当我尝试使用 @Autowire 注释自动连接它时,我无法访问我已经实现的方法。

0 投票
1 回答
745 浏览

spring - 使用 bootstrap.yml 覆盖命令行 Spring 属性

我有一个 tomcat 盒子,它已经设置了 spring 活动配置文件,每次通过 catalina 部署 spring 应用程序时作为命令行参数。

我正在使用 Spring Cloud 配置服务器,因此在配置客户端中,我在 bootstrap.yml 中指定了活动配置文件,但正如我之前提到的,它被 tomcat 命令行参数覆盖。

如何在引导上下文加载时使用我的 boostrap.yml 覆盖通过 tomcat 传递的命令行参数,以便我可以将活动配置文件从我的 bootstrap.yml 传递到配置服务器。

Tomcat 设置环境命令(我无法更改,因为我无权访问)

引导程序.yml

0 投票
0 回答
45 浏览

java - 我在 Spring 变量定义中做错了什么?

在测试开始时,Spring 开始创建上下文。我的根配置测试 XML 文件开始是:

spr-properties 文件是真实文件,用于部署真实应用程序。它从命令行参数中获取一些变量。其中有 spr.root.dir 变量。在测试中,我必须将其设置在其他地方。我使用了来自https://stackoverflow.com/a/36094573/715269的建议。在根配置测试 XML 文件中,我定义了设置属性的文件,并设置

另外,我试过

但是,我仍然收到“无法加载 ApplicationContext”

测试类:

看来我不明白如何设置 Spring 配置变量。

0 投票
1 回答
1036 浏览

spring-boot - Spring Cucumber ActiveProfiles 注释不适用于 CucumberContext

我正在做一个项目,我们有一个组件,其中包括:

  • 外部系统连接器 1
  • 外部系统连接器 2

连接器是互斥的(如果连接器 1 处于活动状态,则连接器 2 始终处于非活动状态,反之亦然)。核心和单个连接器在 ApplicationContext 启动时自动连接。实例化哪个连接器取决于 spring 应用程序属性中的值。

我们正在使用 spring-cucumber (v6.2.2) 编写集成测试。对于每个外部系统,我想运行一组黄瓜测试。我在黄瓜场景中使用注释创建了 2 个测试集,这使我可以将连接器 1 和连接器 2 的测试分开。

我遇到的问题是我需要两个测试集以不同的弹簧配置文件运行,所以我可以使用不同的配置。我找不到如何做到这一点。

当前实现(使用单个配置文件):

pom.xml

CucumberConnector1IT.java

CucumberConnector2IT.java

StepInitializer.java

到目前为止一切正常。但是我现在需要将@ActiveProfiles()注释放在与@CucumberContextConfiguration. 如果我能做到这一点,那么我可以用所需的配置文件注释正确的步骤类。

问题是我对弹簧注释的理解不够深入,无法知道哪些可以移动,哪些不能移动。我发现这个例子正是我想要做的(spring-cucumber-profiles repo注意@ActiveProfiles这里注释的位置)。不幸的是,它使用的是旧版本的cucumber-spring(v5.6.0)。该版本还没有@CucumberContextConfiguration注释,并且根据文档(黄瓜弹簧的发行说明)对弹簧上下文做了一些魔术。我尝试检查示例 repo 并将其升级到 v6.2.2,但无法使其与新版本一起使用。

如果有人在我自己的示例中发现我做错了什么,或者有可能让示例 repo 与版本 6.2.2 一起工作cucumber-spring,将不胜感激。

提前致谢!:)

0 投票
0 回答
55 浏览

spring - spring - 如何明确设置primary = false?

我正在构建一个 jar 依赖项,它将创建一个可能已经存在于将使用该依赖项的应用程序中的类型的 bean。我想在依赖项中创建一个配置 spring 类以将该 bean 标记为“辅助”。我们如何(or @Primary(value=false) )在 spring 中使用注释或 java config 明确地将 bean 设置为次要的?注释autoWireCandidate上也有。@Bean但这仅适用于非常年轻的春季版本。

0 投票
2 回答
601 浏览

java - 带有配置的 Spring 初始化顺序

我有一个Spring项目,我需要配置Flyway。使用默认的 FlywayAutoConfiguration,Flyway 迁移在其他一切(缓存、PostConstruct 注释、服务)之前立即执行。这是我预期的行为(在术语或启动工作流程中)

不幸的是,我需要覆盖默认的 FlywayAutoConfiguration,因为我使用自定义 Flyway 实现,但这不是我的主要问题,我的问题实际上与配置和初始化序列的 Spring Priority 有关。

所以请使用我自己的 flyway,我首先将 FlywayAutoConfiguration 复制到我的 maven 模块中,将其命名为 CustomFlywayAutoConfiguration 并调整导入。我还将属性“spring.flyway.enabled”更改为 false 并创建另一个“spring.flywaycustom.enabled”,以便能够激活我的而不是默认的。

这样做会完全改变启动顺序。现在,flyway 在启动序列结束时执行(在缓存和我项目中的其他 @PostConstruct 之后)

CustomFlywayAutoConfiguration 中定义的以下 bean 现在仅在启动序列结束时创建。使用默认的 FlywayAutoConfiguration ,一开始就很好地创建了。

我试着玩了很多订购(HIGHEST_PRECEDENCE 和 LOWEST_PRECEDENCE)

  • 配置类上的@AutoConfigureOrder
  • @Order 组件
  • 尝试 Autowire FlywayMigrationInitializer 以更早地强制 bean 初始化

它没有改变任何东西,看起来像 Spring 忽略 @Order 和 @AutoConfigureOrder

知道为什么当配置在 spring-boot-autoconfigure 依赖项中时,它作为第一优先级启动,而当相同的配置代码在我的项目中时,我没有相同的顺序?

非常感谢你的帮助。

0 投票
0 回答
17 浏览

java - Spring.schemas 在提取的 jar 中不起作用

我有一个控制台应用程序试图启动一个弹簧上下文。它在一个 jar 中,支持类被提取出来以便在 jar 中使用。这在 Eclipse 中完美运行。当我提取 jar 并尝试在控制台中运行时,它找到了 spring xml,但没有找到 xsds。

我不确定为什么它在 RAD 之外找不到它,但我在政府大楼工作,偏执的安全人员长期以来一直在制定奇怪的防火墙规则,然后在我们提出问题时没有响应。

所以我想我会做 spring.schemas 路线。我在 META-INF 中创建了文件,确认它在提取的 jar 中,并且 spring bean 和 spring 上下文都在那个 META-INF 目录中。spring.schemas 看起来像:

然而……上下文仍然找不到。我不确定如何从这里继续前进。我如何找出解决这个问题的方法?我是否需要手动将元信息添加到类路径或其他东西?

0 投票
1 回答
27 浏览

spring - 我可以使用 application.yml 中定义的属性在其他 application.yml 中定义 spring 中的新属性值吗?

是否可以在 Spring 环境中定义一些属性,例如p1anapplication-profile1.yml然后${p1}在 application.yml 中的其他属性中引用?

就像在属性/ yml 文件或属性本身之间的相互依赖顺序一样,我们可以用spring 做到这一点吗?

目的是避免在像 kafka bootstrap 这样的相同属性需要放在多个地方时出现重复。

0 投票
0 回答
28 浏览

spring - Spring:不能自动装配 ReentrantReadWriteLock

在 Spring-configuration 中,我将 ReentrantReadWriteLock 的 bean 设置如下:

在主代码中我试图自动装配它:

但是当我运行测试时,我看到 readWriteLock 为空。事实上,由于调试,我看到,该堆栈没有达到配置类中的@Bean。

为了实验,我尝试从这个配置类中自动装配其他 bean - 例如 ObjectMapper 的 bean。它自动接线没有问题!

可能ReentrantReadWriteLock有一些特点?还是我做错了什么?