Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring:使用@Qualifier&@轮廓_Java_Spring - Fatal编程技术网

Java Spring:使用@Qualifier&@轮廓

Java Spring:使用@Qualifier&@轮廓,java,spring,Java,Spring,我有一个组件类(让我们在MyService中进行分类),它由@Qualifier(US)标记 由于该组件需要application.yml文件中存在一些值,因此我还使用@Profile({“default”,“qual”})标记该类,以获得该类某些内部属性的正确值 问题,当我为这个特定的限定符(US)执行cucumber测试时,程序抛出以下错误发生了一个意外的内部服务器错误:没有名为“US”的bean可用:没有为限定符“US”找到匹配的MyService bean-既没有限定符匹配,也没有bea

我有一个组件类(让我们在
MyService
中进行分类),它由
@Qualifier(US)
标记

由于该组件需要
application.yml
文件中存在一些值,因此我还使用
@Profile({“default”,“qual”})
标记该类,以获得该类某些内部属性的正确值

问题,当我为这个特定的限定符(US)执行cucumber测试时,程序抛出以下错误
发生了一个意外的内部服务器错误:没有名为“US”的bean可用:没有为限定符“US”找到匹配的MyService bean-既没有限定符匹配,也没有bean名称匹配

因此,我对这一点的理解是,注释
@Qualifier
&
@Profile
不能一起工作。是这样吗?还是我错过了在同一堂课上同时使用这两种语言的机会?

此注释可在字段或参数上用作 自动连线时的候选bean

指示当一个或多个组件 更多指定的配置文件处于活动状态

具有以下注释集的类

@Service
@Qualifier("US")
@Profile({"default", "qual"})
public class MyService {
...}
将仅在“default”或“qual”配置文件处于活动状态时注册MyServicebean,然后可以在bean上使用限定符“US”自动连接

可以用于注入属性

@Value(${some.name})
private String name;

配置文件不是用来获取值的——它是用来指定在特定条件下要部署的应用程序部分。您的错误意味着您使用不同的配置文件运行测试,因此您的合格bean没有部署到应用程序上下文。如果提供了bean元素的profile属性,例如,除非至少激活了配置文件“p1”或“p2”,否则将不会解析bean元素。同样,如果
@组件
@配置
类标记有@Profile({“p1”,“p2”}),则除非至少激活了Profile“p1”或“p2”,否则不会注册或处理该类
@Value(${some.name})
private String name;