现在我有一个继承的项目,它使用基于注释的弹簧依赖注入。因此,所有类都简单地用@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"})
所以我对这种方法有两个问题。
- 如何在此处使用 @Service 注释而不是 bean
- 你认为这种设计更容易吗,因为它很容易告诉你你的包依赖项是什么,而不是寻找它们下。
如果你想手动配置一些属性,那么你应该选择上面的配置,否则你应该坚持退出一个。
This makes it a little hard to find where the dependency is located
@Autowire 或者@Inject注释将始终将您引导至依赖项类。