데이터 초기화(베이스 데이터 추가하기)
jpa:
hibernate:
ddl-auto: create
ddl-auto: create 상태
(update로 설정하는 방법도 있지만, row를 변경하는 sql문을 실행하면 스프링부트를 재실행해도 변경된 값이 유지된다. 그러므로 create 상태에서 베이스 데이터를 추가해주는 방법을 선택한 것!)
spring:
profiles:
active: dev
기본적으로 dev 환경임을 명시
@Configuration
@Profile({"dev", "test"})
public class NotProd {
@Bean
public CommandLineRunner initData(...){
return args -> {
...
};
}
@Profile({"dev", "test"}) : 개발 환경(dev)이거나 테스트 환경(test)일 때 실행한다.
@Bean : @Component와 비슷한 의미. 이 메서드의 리턴값이 IoC컨테이너에 등록된다. 반드시 클래스에 @Configuration이 붙어 있어야 한다.
CommandLineRunner : 서버 시작 시점에 실행되며, CommandLineRunner를 return하는 메서드를 @Bean으로 정의하여 사용할 수 있다.
점프 투 스프링부트
https://wikidocs.net/book/7601
- ORM(Object Relational Mapping) : 객체와 테이블을 맵핑해주는 기술. ORM을 이용하면 자바 문법만으로도 데이터베이스를 다룰 수 있다. 데이터베이스 종류에 상관 없이 일관된 코드를 유지할 수 있어서 프로그램을 유지·보수하기가 편리하고, 내부에서 안전한 SQL 쿼리를 자동으로 생성해 주므로 개발자가 달라도 통일된 쿼리를 작성할 수 있고 오류 발생률도 줄일 수 있다.
- JPA : ORM의 일종. 자바 진영에서 ORM의 기술 표준으로 사용하는 인터페이스의 모음. JPA는 일종의 규약이며 우리가 실제로 사용하는 기술은 Hibernate이다.
- 엔티티(Entity) : 데이터베이스 테이블과 매핑되는 자바 클래스. 모델 또는 도메인 모델이라고 부르기도 한다.
- 임피던스 불일치(객체-개체 패러다임 불일치) : 객체 모델을 관계형 모델에 저장할 때 발생하는 다양한 문제들. JPA가 그 불일치를 해소해준다.
기본 세팅
인텔리제이 세팅
- File > Settings >
- Build, Execution, Deployment > Build Tools >
- Gradle > Build and run using & Run tests using : IntelliJ IDEA, Gradle JVM : 17
- Compiler > Build project automatically 체크
- Advanced Settings > Allow auto-make to start … 체크
- Build, Execution, Deployment > Build Tools >
- File > Project Structure > Project Settings > Project > SDK : 17
- 우측 하단에 뜨는 Lombok requires enabled … > Enable annotation processing 클릭
build.gradle
dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
}
application.yml
server:
port: 8010
spring:
thymeleaf:
cache: false
prefix: file:src/main/resources/templates/
devtools:
livereload:
enabled: true
restart:
enabled: true
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://127.0.0.1:3306/DB_이름?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Seoul
username: DB 아이디
password: 비밀번호
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
show_sql: true
format_sql: true
use_sql_comments: true
'프로젝트 & TIL > 일별 공부 기록 (백엔드 스쿨)' 카테고리의 다른 글
22일차 - 점프 투 스프링부트 3장 (0) | 2023.03.22 |
---|---|
21일차 - 점프 투 스프링부트 2장 (0) | 2023.03.21 |
19일차 - 스프링부트와 DB 연결하기, Spring Data JPA (1) | 2023.03.17 |
18일차 - 스프링부트, 세션, thymeleaf (0) | 2023.03.16 |
17일차 - 스프링부트 Component, Autowired (0) | 2023.03.15 |