我在一个有点棘手的情况下,我有2个方法在我的Quarkus RESTApplication
都返回相同的数据类型。但是,我想注入到2个不同的变量。
如果只有一个方法有一个变量,那么一切正常,但由于有2个方法,两者返回相同的类型,Quarkus无法识别哪个注入,并运行到错误:
Ambiguous dependencies for type String and qualifiers [@Default]
下面是我的代码:RestApplication.class,它具有将提供所需依赖项的@Produces:
@ApplicationPath("/")
public class RESTApplication extends Application {
@Produces
public String firstMethod() {
System.out.println("firstMethod : returns Hello One");
return "HELLO ONE";
}
@Produces
public String secondMethod() {
System.out.println("secondMethod : returns Hello TWO");
return "HELLO TWO";
}
}
下面是我要注入返回值的类:
@Path("/api")
public class RestAPI {
@Inject
String one;
@Inject
String two;
@Path("/one")
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public String myMethodOne(final String input) {
System.out.println("One : " + one)
return one;
}
@Path("/two")
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public String myMethodOne(final String input) {
System.out.println("Two : " + two)
return two;
}
}
正如你所看到的,两个方法返回相同的类型,所以Quarkus无法理解注入哪一个。有办法区分这一点吗?
如果我删除RestApplication
中的第二个方法,那么一切都可以完美地工作。在我的项目中,我需要根据一些计算返回相同类型的不同值,所以我需要使用类似下面的方法。
1条答案
按热度按时间rta7y2nd1#
基于OP的代码,不要过长。
java :
Kotlin: