主要是关于应用程序体系结构的问题。
我们有服务层(@Service HelloService
)和bean,它们使用服务方法(@Component HelloBean
,并自动连接了HelloService)。服务中有许多方法,HelloBean将来自服务的许多方法汇总为一个方法。因此,我们使用这种单一方法。
我们还有另一个bean(@Component GoodbyeBean
)。而且我们想使用HelloBean中的单个方法,并且应该在GoodbyeBean中自动装配HelloBean以使用此方法。
在一个bean中使用另一个bean是正确的,还是我们应该提供一些新服务(例如@Service GoodbyeService
)并重复HelloService中的所有代码?或者我们应该在GoodbyeBean中自动装配HelloService,并重复HelloBean中的所有代码?
我意识到,Spring IoC包含所有这些组件,我们可以在整个Spring上下文中使用所有这些组件。
什么是正确的方法?
答案 0 :(得分:1)
我认为您不应该在GoodByeBean中调用HelloBean,因为顾名思义,它是彼此相反的,并且会对其他人产生很大的误导。
如果HelloBean和GoodbyeBean中有一些通用代码,则将其移到新服务中可能称为GreetingService,然后从HelloBean和GoodbyeBean中调用该方法
答案 1 :(得分:1)
如果要调用的HelloBean方法调用了HelloService的几种方法,则最好从GoodByeBean调用这些方法,或者如果代码或任何内容均未更改,则最好使用HelloBean并调用相同的方法。
如果还有其他方法没有调用我们之前考虑的方法,那么我想从GoodByeBean调用HelloBean的方法是可以的。有时可能不得不从同一逻辑层调用方法。
或者按照@Ankita Agrawal的建议,将方法复制到另一个类中,然后从HelloBean和GoodByeBean中调用该方法。