1. application-test.properties 파일 생성
# datasource 설정
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:./data/demo
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
# H2 데이터베이스 방언 설정
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
- username, password 는 기본값으로 설정해줘도 됨
- port 는 기본값이고 path를 지정해주면 localhost:8080/h2-console 로 접속하면됨
- '인메모리 모드' 에서는 url 설정을 jdbc:h2:mem:{db이름} 으로 설정
- 'embedded mode' 에서는 url 설정을 jdbc:h2:{db가 저장될 경로} 로 설정
2. Spring Security 적용 중이라면 h2 database 접속시 설정이 안 되도록 코드 입력
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
@ConditionalOnProperty(name = "spring.h2.console.enabled",havingValue = "true")
public WebSecurityCustomizer configureH2ConsoleEnable() {
return web -> web.ignoring()
.requestMatchers(PathRequest.toH2Console());
}
}
- @ConditionalOnProperty: 이 애너테이션은 특정 프로퍼티가 설정된 경우에만 해당 빈을 생성. 즉, spring.h2.console.enabled가 true로 설정된 경우에만 configureH2ConsoleEnable() 메서드에서 반환한 빈이 생성됨.
- WebSecurityCustomizer: 이 빈은 WebSecurityCustomizer 타입의 빈을 생성하고, 이를 사용하여 특정 URL 패턴에 대해 보안 필터를 무시하도록 설정함. PathRequest.toH2Console()을 사용하여 H2 콘솔의 URL 패턴을 정의하고, 이 패턴에 대해 보안 필터를 무시하게 설정.
3. 웹 브라우저 창에서 localhost:8080/h2-console 접속
- properties에서 설정한 driver class, jdbc url, username, password 입력 후 test connection 클릭
- 그 후 connect 클릭하면 쿼리 작성할 수 있는 창이 뜨고, 결과확인 코드를 입력해서 RUN 클릭하면 됨!
* 테스트 코드 결과물은 어플리케이션이 종료되면 없어짐!
내용 참고:
https://dukcode.github.io/spring/h2-console-with-spring-security/
https://colabear754.tistory.com/193
'Spring & Spring Boot' 카테고리의 다른 글
Spring Boot 쇼핑몰 프로젝트 | 회원가입 구현 (0) | 2024.07.31 |
---|---|
JpaRepository method, Query method (0) | 2024.07.31 |
@Lombok 및 Entity 관련 어노테이션 (0) | 2024.07.25 |
[Spring Boot] 댓글 등록 · 수정 · 삭제 (0) | 2024.06.07 |
[Spring Boot] 비동기처리와 Axios, 댓글 목록 처리 (1) | 2024.06.03 |