当前位置: 首页 > 知识库问答 >
问题:

Spring引导-从控制器覆盖bean

拓拔弘化
2023-03-14

>

  • 我有两个控制器(ControllerA和ControllerB)

    两个控制器都调用一个服务(MyService)。

    MyService调用名为MyRepository的接口,该接口有两个实现(FirstRepository和SecondRepository)。

    如何可能在从ControllerA调用服务(MyService)时使用FirstRepository而在调用来自ControllerB时使用SecondRepository?

    通过这种方式,我可以重用MyService并且使用的存储库来自Spring配置。

  • 共有1个答案

    冯新知
    2023-03-14

    在这里我可以看到两种可能的解决方案。1.在您的MyService类中,使用@qualifier注释自动连接两个实现(您也可以自动连接列表。然后MyService方法将有一个参数,说明应该调用哪个MyRepository实现。我不建议使用此解决方案。2.定义MyService的两个实现(FirstService和SecondService)。然后FirstService将自动连接FirstRepository和SecondService将自动连接SecondRepository(再次使用@qualifier注释。现在您可以轻松地将FirstService注入ControllerA,将SecondService注入ControllerB。

    但首先我会考虑建筑。也许你不需要单独的控制器?

     类似资料:
    • 我如何覆盖Spring引导的favicon? 否则,WebMvcAutoConfiguration注册faviconRequestHandler bean(请参见源https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autocigure/src/main/java/org/springframework/bo

    • 我是Spring Boot的新手,并试图构建一个简单的Web应用程序。我定义了一个包含我的url映射的控制器类,但在浏览器上它给我一个白标页面错误(404)。我无法理解为什么它无法映射。我尝试过更改我的组件扫描基础包,但它仍然没有将我重定向到控制台中的页面“abc”或打印“在控制器中”。 pom.xml 控制器类 主类

    • 我有一个POJO类,它具有类的注释。 控制器看起来像这样。 现在,我有一个基于类型字段的值的要求,需要在最终生成的JSON中为值字段返回null。 例如,如果 type='XYZ',则响应将为 。如果 type='ABC',则响应应为 我怎样才能在春靴中实现这一点?处理这种情况的最好方法是什么?

    • 招呼 我有一个Spring Boot应用程序(1.4.1版)。之前从中设置 -支持thymeleaf模板中不严格的html。我只在电子邮件模板中使用Thymeleaf模板。该应用程序代表tho REST API,所有控制器返回数据。 然而,在我为电子邮件设置了Thymeleaf之后,一些请求正在为它们寻找Thymeleaf模板,并返回。 Thymeleaf配置(yml,这是Thymeleaf的所有

    • 问题内容: 我有以下REST信息库,其实现是在运行时由Spring生成的。 这意味着我将具有save(),find(),exist()和其他可用的方法,并通过REST公开。 现在,我想重写其中一种方法。例如,save()。为此,我将创建一个暴露该方法的控制器,如下所示: 问题: 如果启用此控制器,则不再公开由Spring实现的所有其他方法。因此,例如,我无法再对/ foo / 1进行GET请求 问

    • 问题内容: 这是一个现实的Angular问题,我无法解决。我喜欢Angular,但是这个问题现在困扰着我很多。 扩展现有控制器功能,并在应用程序的另一页上使用扩展控制器的最佳实践是什么?换句话说: 如何在Angular中继承控制器? 编辑 -2014年9月23日,不要以为我的原始用例的描述会帮助访问者更好地理解我在这里的用意。我认为这使人们偏离了真正的问题。 问题答案: 半年后,我想我完全了解发生