SpringBoot 구성 요소다중 모듈 프로젝트 스캔 문제
나는 나의 app-core와 나의 app-web 모듈로 나의 부모님 pom 타입 maven 프로젝트가 있습니다. 나의 app-core 모듈은 나의 app-web에 대한 의존성으로 추가되었습니다.
내 앱-코어 모듈의 모든 클래스는 루트 패키지 com.myapp.core에 있고 내 앱-웹 모듈의 모든 클래스는 루트 패키지 com.myapp에 있습니다.거미줄
메인 Application.java도 com.myapp에 있습니다.웹 패키지코어 모듈 루트 패키지가 다르므로 ComponentScan용 공통 기본 패키지 "com.myapp"을 다음과 같이 포함합니다.
@Configuration
@ComponentScan(basePackages="com.myapp")
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
이제 놀라운 것은 제가 Run As -> Spring Boot App을 사용하여 이 앱을 실행하면 잘 작동한다는 것입니다.그러나 Run As -> Java Application으로 실행하면 앱 코어 모듈에 정의된 빈을 찾을 수 없다는 오류와 함께 실패합니다.
내가 움직이면,Application.java로.com.myapp패키지는 잘 작동하고 있습니다.제가 자바 애플리케이션으로도 실행해도 되는 거죠?
봄에 대한 디버그 로그 수준을 활성화하고 광범위한 로그를 검토한 후 JPA 저장소, JPA 엔티티 등과 같은 다양한 구성 요소에 대한 검색이 애플리케이션에 따라 다르다는 것을 알게 되었습니다.Java의 패키지 이름입니다.
JPA 리포지토리 또는 엔티티가 다음의 하위 패키지에 없는 경우Application.java의 패키지를 다음과 같이 명시적으로 지정해야 합니다.
@Configuration
@ComponentScan(basePackages="com.sivalabs.jcart")
@EnableAutoConfiguration
@EnableJpaRepositories(basePackages="com.sivalabs.jcart")
@EntityScan(basePackages="com.sivalabs.jcart")
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
위의 추가 사항 포함@EnableJpaRepositories,@EntityScan다른 이름으로 실행 -> Java Application을 사용하여 실행할 수 있습니다.
하지만 여전히 Run As -> Spring Boot App에서 어떻게 작동하는지 잘 모르겠습니다!!
어쨌든 나는 내 것을 옮기는 것이 더 낫다고 생각합니다.Application.java로.com.myappSpringBoot과 싸우는 것보다 패키지!
저도 같은 문제가 있어요.@EnableJpaResposities 주석을 추가해야만 이 문제를 해결할 수 있습니다.@SpringBootApplication에서 basePackages를 정의하려고 했지만 실패했습니다.Application 클래스의 패키지가 JpaResposities의 검색 프로세스에 제공되지만 @SpringBootApplication에 정의된 다른 패키지는 무시됩니다.스프링 부트의 버그/개선 사항으로 보입니다.
Redis 저장소에서도 비슷한 문제가 발생하여 다음과 같은 문제가 해결되었습니다.
@Configuration
@EnableConfigurationProperties({RedisProperties.class})
@RequiredArgsConstructor
@EnableRedisRepositories(basePackages = {"com.example.another"})
public class RedisConfig {
private final RedisConnectionFactory redisConnectionFactory;
@Bean
public RedisTemplate<?, ?> redisTemplate() {
RedisTemplate<byte[], byte[]> template = new RedisTemplate<byte[], byte[]>();
template.setConnectionFactory(redisConnectionFactory);
template.afterPropertiesSet();
return template;
}
}
언급URL : https://stackoverflow.com/questions/30587377/springboot-componentscan-issue-with-multi-module-project
'itsource' 카테고리의 다른 글
| 원두형의 원두. 원두형. 원두형. 원두형. 원두형. 원두형.ServerCodecConfigurer'를 찾을 수 없습니다. (0) | 2023.07.21 |
|---|---|
| AutoConfigureMockMvc 주석에서 secure=false를 무시하는 Spring Boot 통합 테스트에서 401을 얻습니다. (0) | 2023.07.21 |
| 두 데이터 프레임을 비교하고 차이점 파악 (0) | 2023.07.21 |
| 행 제한 절을 사용하여 Oracle 쿼리에서 열 복제 (0) | 2023.07.21 |
| IPython 노트북에서 코드가 실행되는지 확인하려면 어떻게 해야 합니까? (0) | 2023.07.21 |