弹簧依赖注入 - 配置的最佳设计模式



现在我有一个继承的项目,它使用基于注释的弹簧依赖注入。因此,所有类都简单地用@Component标记(或特定的刻板类型,如@service,@Repository,@RestController等(。 这使得很难找到依赖项所在的位置,我正在考虑更改它,以便每个包都有自己的依赖项配置,然后将每个包添加到@ComponentScan。

例如,如果我有一个名为com.mycoolpackage.login和mycoolpackage.networking 的软件包。然后我会在第一个包中有一个这样的 Spring 配置:

 @Configuration
    public class LoginDIConfig {
        @Bean
        public LoginServiceImpl loginServiceImpl() {
            return new LoginServiceImpl();
        }
    }

在第二个包中,我将有以下内容:

@Configuration
public class NetworkDIConfig {
    @Bean
    public NetworkServiceImpl networkServiceImpl() {
        return new NetworkServiceImpl();
    }
}

my@ComponentScan看起来像这样:

@ComponentScan(basePackages = {"com.mycoolpackage.login","com.mycoolpackage.network"}) 

所以我对这种方法有两个问题。

  1. 如何在此处使用 @Service 注释而不是 bean
  2. 你认为这种设计更容易吗,因为它很容易告诉你你的包依赖项是什么,而不是寻找它们下。

如果你想手动配置一些属性,那么你应该选择上面的配置,否则你应该坚持退出一个。

This makes it a little hard to find where the dependency is located

@Autowire 或者@Inject注释将始终将您引导至依赖项类。

最新更新