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

有没有办法@Autowire非重写方法?

越风史
2023-03-14

我有一个由多个类实现的接口,这些类也有一些额外的方法。如果我自动连接这个类。有没有办法自动安装这些额外的方法?

例如─

界面

public interface ExampleInterface {
    String methodOne();
    String methodTwo();
}

服务1

@Service
public class ServiceOne implements ExampleInterface {

    @Override
    String methodOne() {
        return "one";
    }
    
    @Override
    String methodTwo() {
        return "two";
    }

    String methodThree() {
        return "three";
    }
}

服务2

@Service
public class ServiceTwo implements ExampleInterface {

    @Override
    String methodOne() {
        return "1";
    }
    
    @Override
    String methodTwo() {
        return "2";
    }

    String otherMethod() {
        return "hello";
    }
}

如果我尝试像这样直接自动连接服务-

@Service
public class Service{

    ServiceOne serviceOne;

    @Autowired
    public Service(ServiceOne serviceOne) {
        this.serviceOne = serviceOne;
    }
}

然后我得到了类似这样的错误-

Parameter 0 of constructor in Service required a bean of type 'ServiceOne' that could not be found.

共有1个答案

刘博雅
2023-03-14

我在服务上使用@ConditionalOnProperty,这就是为什么它没有自动连接。

 类似资料:
  • 我解释我这篇文章的目标。 实际上,我想重写如何Android工作的基本上,与应用程序中的字符串。此时此刻,我可以从重写android资源中动态更改它 实际上,我有这个功能,只有当我使用时才能正常工作: 有一种简单的方法,不需要太多代码,就可以覆盖xml中的行为?

  • 问题内容: 有没有办法用TypeScript语言进行方法重载? 我想实现以下目标: 这是我不想做的一个例子(我真的很讨厌JS中重载hack的那一部分): 问题答案: 根据规范,TypeScript确实支持方法重载,但是它很笨拙,并且包含许多手动检查参数类型的工作。我认为这主要是因为在纯JavaScript中最接近方法重载的地方还包括检查,并且TypeScript尝试不修改实际的方法主体,以避免任何

  • 我正在编写一个JavaFractal Explorer,分形计算是多线程完成的。以前,我只是创建了一堆线程(系统有多少处理器内核就有多少)并将它们保存在一个数组中,但这会导致一些问题,而且不是很优雅,现在我想切换到执行器。 我需要的功能是: 用户可以随时选择要放大的分形图像的新区域,因此应该可以随时取消计算,并立即重新插入新任务 我的问题是Java ExecutorService(我使用Execu

  • 问题内容: 我正在使用Spring 3.0.5,并为类成员尽可能多地使用@Autowire注释。我需要自动装配的bean之一需要其构造函数的参数。我浏览了Spring文档,但似乎找不到任何有关如何注释构造函数参数的参考。 在XML中,我可以将其用作bean定义的一部分。@Autowire注释是否有类似的机制? 例如: 在此示例中,如何在MyBeanService中使用@Autowire批注指定“

  • 背景: 所以我有一个方法调用,我想保存到一个文本文件中。这样做的目的是将可运行的序列化对象保存到文本文件中,并在以后从文本文件中获取要执行的对象。 错误是: 我理解错误,Runnable是一个接口,它不能被序列化。然而,我还能做些什么来解决我的问题吗? 解决方案尝试1。错误

  • 因为这个方法是在运行时执行的,所以需要对它进行测试吗