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

时间:2016-02-04 17:28:50

标签: java spring dependency-injection

现在我有一个继承项目,它使用基于注释的spring依赖注入。因此,所有类都只使用@Component(或特定的stereoTypes,如@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();
    }

}

我的@ ComponentScan看起来像这样:

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

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

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

1 个答案:

答案 0 :(得分:1)

如果你想手动配置一些属性,那么你应该进行上述配置,否则你应该坚持退出。

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

@Autowire或@Inject注释将始终引导您进入依赖类。