当前位置: 首页 > 知识库问答 >
问题:

将spring-boot配置为仅为测试目的的特定依赖项自动配置

冀景明
2023-03-14
compile "org.springframework.boot:spring-boot-starter-web:1.0.2.RELEASE"
compile "org.springframework.boot:spring-boot-starter-data-jpa:1.0.2.RELEASE"
@SpringApplicationConfiguration(classes = {DataConfig.class})
public class PersonRepositoryTests extends AbstractJUnit4SpringContextTests {

    @Autowired
    PersonRepository personRepository;

    @Test
    public void testSaveWithNameNull() {
        /* ... */
    }

}

@Configuration
@EnableAutoConfiguration
@EnableJpaRepositories(basePackageClasses = {RepoPackage.class})
@EntityScan(basePackageClasses = {DomainPackage.class})
@EnableTransactionManagement
public class DataConfig {

}

在我的上下文中,我希望spring-boot只自动配置spring-data-jpa相关配置,省略Web相关配置

或者,还有其他更好的方法在Spring-Boot中设置这种类型的测试配置吗?

共有1个答案

桂志新
2023-03-14

尽管上面的答案是正确的,但还有一个额外的评论。

@enableAutoConfiguration注释开始自动配置它在类路径上找到的所有内容。您可以通过排除某些自动配置类来排除某些内容,例如:

@AutoConfiguration(exclude = {
    DataSourceAutoConfiguration.class,
    HibernateJpaAutoConfiguration.class
})

类似地,您可以通过@import自动配置类自动配置某些功能。比如:

@Import({DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
    null
 类似资料:
  • 我正在开发一个具有可重用逻辑的公共java库,以与一些AWS服务交互,这些服务将依次被多个消费者应用程序使用。出于这里概述的原因,以及Spring Boot似乎为SQS集成之类的东西提供了大量无模板代码的事实,我决定将此公共库实现为具有自动配置的定制Spring Boot启动器。 我也是Spring框架的新手,因此遇到了一个问题,即我的自动配置类的实例变量没有通过AutoWired注释进行初始化。

  • Spring boot提供组件扫描来查找要扫描的包。 我正在构建一个库,里面有和。还有其他类以及不同包中的原型注释。 因此,如果有人正在使用基础包开发SpringBoot Application。他在他的应用程序中使用我的库。他需要提到来发现库的原型组件。 是否有任何方法可以在不包含库包的情况下扫描组件? 由于spring-boot-starter-驱动器仅使用依赖关系公开其endpoint,而无

  • 我如何配置我的Spring Boot应用程序,以便当我运行单元测试时,它将使用内存中的数据库(如h2/hsql),而当我运行Spring Boot应用程序时,它将使用生产数据库[postgre/mysql]?

  • 我想有一个使用Spring Boot的微服务项目,它通过通过Spring Data JPA项目创建的依赖项访问实体和DAO。这个想法是多个微服务可以获得该依赖项。 然而,当jar在Spring Boot Data JPA项目中组装时,它通过starter依赖项包含了许多依赖项。其中大多数也出现在使用它的Spring Boot Microservice项目中。 您将如何通过Spring Data J

  • 我有以下存储库:https://github.com/vlio20/bfit,我试图使用R2DBC以异步方式执行db操作。我遵循了以下教程(但可能已经过时了https://www.youtube.com/watch?v=DvO4zLVDkMs 以下是我的pom的相关附件: 我使用的是默认配置,所以我的属性yaml中只有以下配置: 这就是我得到的错误: 组织。springframework。豆。工厂

  • 问题内容: 我能够使用RestTemplate并将其自动连线。但是我想将我与其余模板相关的代码部分移到另一个类中,如下所示: 在另一堂课上我称之为: 我是Spring和Dependency Injection术语的新手。我的变量为null并引发异常。我该怎么解决(我不知道它与我使用 关键字有关)吗? 问题答案: 使用不适用于依赖项注入。你没有被注入,因为wbin不是由Spring管理的。 你必须自