Spring 在另一个bean中使用来自一个bean(组件)的方法是否正确?

Spring 在另一个bean中使用来自一个bean(组件)的方法是否正确?,spring,spring-boot,Spring,Spring Boot,它主要是关于应用程序架构的问题 我们有服务层(@service HelloService)和bean,它们使用服务方法(@Component HelloBean,带有自动连线的HelloService)。服务中有许多方法,HelloBean将服务中的许多方法聚合到单个方法中。所以我们使用这个单一的方法 我们还有另一个bean(@Component GoodbyeBean)。我们希望使用HelloBean中的单个方法,并且应该在GoodbyeBean中自动连接HelloBean以使用此方法 在另一

它主要是关于应用程序架构的问题

我们有服务层(
@service HelloService
)和bean,它们使用服务方法(
@Component HelloBean
,带有自动连线的HelloService)。服务中有许多方法,HelloBean将服务中的许多方法聚合到单个方法中。所以我们使用这个单一的方法

我们还有另一个bean(
@Component GoodbyeBean
)。我们希望使用HelloBean中的单个方法,并且应该在GoodbyeBean中自动连接HelloBean以使用此方法

在另一个bean中使用一个bean是正确的,还是我们应该创建一些新服务(比如,
@service goodbyeseservice
)并重复HelloService中的所有代码?或者我们应该在GoodbyeBean中自动连接HelloService并重复HelloBean中的所有代码

我意识到,SpringIOC包含所有这些组件,我们可以在Spring上下文中使用它们


什么是正确的方式?

我认为你不应该在《再见》中称呼HelloBean,因为顾名思义,HelloBean和HelloBean是对立的,对任何其他人都会产生误导


如果HelloBean和GoodbyeBean中有一些共同的代码,那么将其移动到新的服务中可能会被称为GreetingService,然后从HelloBean和GoodbyeBean调用该方法

我认为您不应该在GoodbyeBean中调用HelloBean,因为顾名思义,它是相互对立的,并且会对任何其他人产生误导


如果HelloBean和GoodbyeBean中有一些通用代码,将其移动到新服务可能被称为GreetingService,然后从HelloBean和GoodbyeBean调用该方法

如果您调用HelloBean的方法,该方法调用了HelloService的多个方法,那么最好从GoodbyeBean调用这些方法,或者如果代码或任何内容没有变化,那么就全面使用HelloBean调用相同的方法

如果是其他方法,不调用我们先前考虑过的方法,那么我想从Goobe BeBeEE调用HeloBead方法是很好的。有时,您可能不得不从同一逻辑层调用这些方法


或者按照@Ankita Agrawal的建议,在另一个类中复制该方法,并从HelloBean和GoodByeBean调用该方法

如果您正在调用HelloBean的方法,该方法调用了HelloService的多个方法,那么最好从GoodByeBean调用这些方法,或者更确切地说,如果代码或任何东西没有变化,那么使用HelloBean并调用相同的方法

如果是其他方法,不调用我们先前考虑过的方法,那么我想从Goobe BeBeEE调用HeloBead方法是很好的。有时,您可能不得不从同一逻辑层调用这些方法


或者按照@Ankita Agrawal的建议,在另一个类中复制该方法,并从HelloBean和GoodByeBean调用该方法

谢谢你的回答。我认为你答案的第二部分更适用谢谢你的回答。我认为你答案的第二部分更适用,那么最好从GoodByeBean调用这些方法-这违反了DRY(不要重复你自己)规则吗?那么最好从GoodByeBean调用这些方法-这违反了DRY(不要重复你自己)规则吗?