配置类中的Spring MVC Default或no-arg构造函数

时间:2017-04-19 05:25:42

标签: java spring spring-mvc spring-boot

@Configuration
public class ApplicationConfig {

   private DataSource dataSource;

  @Autowired
  public ApplicationConfig(DataSource dataSource) {
    this.dataSource = dataSource;
  }

  @Bean(name="clientRepository")
  ClientRepository jpaClientRepository() {
    return new JpaClientRepository();
   }
}

我刚刚发现了一个Core Spring 4.2认证模拟考试,关于这个课程,它说"Default or no-arg constructor is mandatory."
我在我做的测试中尝试了这个类,它没有Default或no-arg构造函数(?)就完美地运行了,所以我认为不需要Default或no-arg构造函数

1 个答案:

答案 0 :(得分:5)

如果您的Spring版本是< = 4.2,则该语句为真。但是对于Spring> = 4.3,允许有@Configuration类而没有no-args构造函数。

另请参阅参考指南中的Core Container Improvements部分。它已在Spring 4.3 RC1中以问题SPR-13471实现。

专家提示:如果您只有一个构造函数,则不再需要构造函数@Autowired。 (见SPR-12278))。