创建Spring bean的最佳方法

时间:2014-06-12 14:21:26

标签: java spring

我通常以两种不同的方式创建Spring bean:

手动创建服务和存储库:

public class Repository {
    ...
}

public class Service{

    private Repository repository;

    public Service(Repository repository) {
        this.repository = repository;
    }

    ...
}

@Configuration
public class Config {

    @Bean
    public Repository repository() {
        return new Repository();
    }

    public Service service() {
        return new Service(repository());
    }

    ...
}



@Controller
public class Controller {

    @Autowired
    private Service service;

    ...
}

使用spring注释自动装配它们:

@Repository
public class Repository{
    ...
}

@Service
public class Service{

    @Autowired
    private Repository repository;

    ...
}

@Controller
public class Controller {

    @Autowired
    private Service service;

    ...
}

在第一种方法中,您可以完全控制bean的创建,并且在将来您可以通过另一个框架以最小的更改来更改Spring。另一方面,第二种方法很简单,特别是当你的应用程序中有大量的bean时。

但是我想问一下上面两种方法中的哪一种更适合创建bean。

提前谢谢

2 个答案:

答案 0 :(得分:0)

我怀疑你永远不会改变春天。但如果这是一个主要的问题,而不是使用autowire功能。

无论哪种方式,都要确保您拥有一套全面的单元测试,可以保证,如果您更改框架,您可以识别问题和错误。否则,无论如何你都不会觉得改变框架很舒服。

答案 1 :(得分:0)

我认为这是一个偏好问题。我们最近改用@Configuration,因为我们需要针对不同情况使用不同的配置文件。两者都很好。