因此@IfProfileValue
,与@Profile
或无关@ActiveProfiles
。@Profile
测试以查看配置文件是否处于活动状态,@ActiveProfiles
将其设置为活动状态,并@IfProfileValue
允许您检查Spring中的内容Environment
。?我会弃用所有这些,添加新的@IfEnvironment
,@IfProfile
和@ActivateProfiles
。
除了评论,我该如何使用@IfProfileValue
检测我的个人资料是否处于活动状态?我目前不在此项目上使用Spring
Boot。答案应该显示代码,如果配置文件被激活为,我们将假设我希望测试运行@ActiveProfiles( "test" )
。
我试过了,@IfProfileValue(name = "activeProfiles", value = "test")
但是似乎跳过了测试,这意味着它不匹配。我要去推测问题可能与事实,做ActiveProfiles
一个Collection
。
因此
@IfProfileValue
,与@Profile
或 无关@ActiveProfiles
。
…我假设您已经看过,因为您昨天评论了我的答案。
其原因@IfProfileValue
有没有关系@Profile
或者@ActiveProfiles
是由于架构的演变。有关更多详细信息,请参见下文。
@Profile
测试以查看配置文件是否处于活动状态,
@ActiveProfiles
将其设置为活动状态,并@IfProfileValue
允许您检查Spring中的内容Environment
。
这些陈述并不完全正确,尤其是最后一部分。
@Profile
如果有一个指定的 bean定义配置文件
在Spring中对于处于活动状态,则用来用于有选择地启用组件(例如@Service
等),@Configuration
类或@Bean
方法。这个注解不直接相关测试:应该
不是 被一个测试类使用。 Environment``ApplicationContext``@Profile
@ActiveProfiles
用于指定在加载用于集成测试的 Bean定义配置文件 (例如,通过声明的
Bean@Profile
)应该处于活动状态ApplicationContext
。
@IfProfileValue
并 没有
允许你检查的事在春节Environment
。我不确定您为什么要这样做,因为Spring框架中的任何文档都没有说明这一点。正如我在上述线程中所述:
请注意,它@IfProfileValue
是在Spring Framework 2.0中引入的, 早
于bean定义配置文件的概念,并且@ActiveProfiles
是在Spring Framework 3.1中首次引入的。
在上述线程中,我还指出了以下几点:
考虑到的语义时,“配置文件”一词可能会引起误解@IfProfileValue
。关键是要考虑“测试组”(如TestNG中的那些)而不是“配置文件”。请参阅JavaDoc中@IfProfileValue的示例。
如何使用
@IfProfileValue
检测我的个人资料是否处于活动状态?
这取决于,并且…我假设您所说的“ profile” 是指 bean定义配置 文件。
如果@ActiveProfiles
用于设置测试的 Bean定义配置文件 ,则当前不能@IfProfileValue
用来确定
Bean定义配置文件 是否处于活动状态,因为通过配置的
Bean定义配置文件@ActiveProfiles
是直接在测试中设置的,ApplicationContext
而不是作为Java系统属性设置的。
但是,如果你设置 的bean定义配置文件 只能 通过spring.profiles.active
系统属性,那么 就
可以使用@IfProfileValue
,以确定是否一个 bean定义配置文件
是积极的,因为@IfProfileValue
事实上作品与系统性能。例如,您可以使用以下代码:
@IfProfileValue(name = "spring.profiles.active", value = "test")
我试过了,
@IfProfileValue(name = "activeProfiles", value = "test")
但是似乎跳过了测试,这意味着它不匹配。
那activeProfiles
是不正确的,因为属性名称不正确。正确的系统属性名称是spring.profiles.active
。有关AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME
详细信息,请参见。
@IfProfileValue
不协调的事实@ActiveProfiles
是Spring团队的已知问题。请咨询以下JIRA问题以获取更多详细信息,并根据需要加入讨论。
希望这可以为您澄清情况!
Sam( Spring TestContext Framework的作者 )
我在Maven上构建了一个Spring Boot应用程序。我正在使用Spring概要文件来区分特定于环境的配置。我想防止在特定的Spring配置文件处于活动状态时运行测试。原因:我希望防止使用生产属性运行测试()。我想在全球范围内(可能使用一些Maven插件)进行这项工作,而不是在每个测试中单独进行。 你对此有什么检查过的解决方案吗?
问题内容: 对于每个请求,您可以通过几种不同的方式来判断会话是否已经开始,例如: 要么: 但是,如果您启动会话然后将其关闭,它们都将失败。将返回前一个会话的ID,同时将对其进行定义。同样,如果您已经有一个活动会话,则此时调用将生成一个。有没有一种明智的方法来检查会话当前是否处于活动状态,而不必诉诸输出缓冲,关闭运算符()或其他类似hacky的方法? 编辑8/29/2011:向PHP 5.4添加了新
问题内容: 因此,我正在使用下载管理器在我的应用程序中下载多个文件。开始某些活动之前,我需要这些文件才能完成下载。如何检查是否有活动的下载,所以我可以告诉用户等待下载完成。然后,当它们完成时,我需要使按钮可见。我已经用谷歌搜索过,甚至自己(盲目地)尝试了一些代码,但没有任何效果。如果有人可以向正确的方向推动我,我将不胜感激。 问题答案: 使用打听下载。调用时,返回值是下载的ID。您还可以按状态查询
本文向大家介绍C#中如何检查线程是否处于活动状态,包括了C#中如何检查线程是否处于活动状态的使用技巧和注意事项,需要的朋友参考一下 要检查线程是否存在,代码如下: 示例 输出结果 这将产生以下输出- 示例 现在让我们来看另一个示例- 输出结果 这将产生以下输出-
我需要检查FTP服务器是否处于活动状态,此服务器是否: 我尝试了这段代码: 问题是返回以下异常: 如何才能做到这一点呢? 谢谢你
我有一个用maven作为构建工具的应用程序。 我正在使用maven概要文件从不同的概要文件设置不同的属性。 假设我运行带有out的maven,并指定我希望spring的任何其他概要文件,将和作为活动概要文件。