可以的,而且在 Spring Boot 的测试环境里全局开启 lazy-init 还挺常见,主要是为了让测试启动更快,只初始化真正会被用到的 Bean。

下面分两部分说:


一、Spring Boot 中全局开启 lazy-init(包括测试)

从 Spring Boot 2.2 开始,可以通过配置属性全局开启 lazy-init:

# application.yml 或 application-test.yml
spring:
  main:
    lazy-initialization: true

或 properties:

spring.main.lazy-initialization=true

只要这个配置生效,所有通过 Spring 管理的 bean(包括 @Component、@Service、@Repository、@Configuration/@Bean 等)默认都会改为懒加载,除非你在某个 bean 上显式关闭(例如 @Lazy(false))。

在 JUnit 测试里怎么用?

常见几种方式:

方式 1:使用测试专用配置文件

比如你有:

@SpringBootTest
class SomeTest {
    // ...
}

那就可以在 src/test/resources 下建一个 application-test.yml

spring:
  main:
    lazy-initialization: true

然后把 profile 切到 test

@SpringBootTest
@ActiveProfiles("test")
class SomeTest {
}

这样 只在测试环境里启用 lazy-init,不会影响正式环境。