我试图了解如何最好地利用spring应用程序上下文层次结构。假设我有一个应用程序,我有@Controller bean,@ Service beans和@Repository bean,代表一个前端,业务和持久层,如果这些层的上下文中只有bean是可见的,那么这似乎很好在上下文中。如果我不需要特殊的代码来创建bean也很好,只需使用@Autowired即可。
我可以为我的存储库创建一个上下文,让我们说repoContext,其中只存在存储库bean。服务层需要访问那些,但反之亦然,因此我可能会创建另一个上下文serviceContext,它将repoContext作为父级。现在前端层需要服务,所以我可能会创建一个controllerContext,其中serviceContext为parent。但是这样做,controllerContext也能够将存储库bean提供给前端层,这与我想要的相反。
因此,在我看来,为了在单独的上下文中正确地分离bean依赖项,父子关系对于为上下文提供依赖性并不是非常有用。 有没有更好的方法?是否存在服务bean的前端和后端上下文共享配置,但后端上下文是否可用于首先对服务bean进行隔离(因为只有此上下文具有存储库)?或者这种方法会导致前端上下文尝试实例化自己的服务bean吗?