@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class SellApplication {
public static void main(String[] args) {
SpringApplication.run(SellApplication.class, args);
}
}
(exclude = DataSourceAutoConfiguration.class)的作用是,在springboot没有配置数据源的情况下,可以启动项目,因为springboot会自动注入数据源,如果你不加上红色的部分,就会抛出异常,当你在application.yml里面配置了数据源就不需要加上这段代码,就可以删除,不然在你用到单元测试的时候就会产生冲突
因为在springboot的启动类加上(exclude = DataSourceAutoConfiguration.class),导致启动单元测试的时候一直不能创建bean,
下面的报出的异常
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.meizhi.sell.repository.ProductCategoryRepositoryTest': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.meizhi.sell.repository.ProductCategoryRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)},
并不是在@springBootTest后面加上(classes=Application.class)就能解决的。
希望可以帮助到和我一样刚学习springboot的人,刚写博客,不喜勿喷。转载请注明出处