1) 프로젝트 생성
2) 프로젝트 구조
- src/main/java -> java코드가 들어가는 부분
- src/main/resources
- static -> css, javascript, 이미지와 같은 정적인 파일들
- templates -> html파일
application.properties -> 설정 파일
- jar로 패키징할 경우 /src/main/webapp을 사용하지 마라
3) pom.xml
아래를 꼭 넣어줘야함
- Spring Boot Maven Plugin 메이븐 속 스프링부트를 서포트 해준다
- 이 플러그인을 통해서 jar나 war파일로 패키징 할 수 잇게 해주고 실제로 이를 실행시켜줄 수 있다.
- 아래와 같이 사용 할 수 도 있다.
1
2
mvn package (패키징 할 때)
mvn spring-boot:run (이런식으로 실행시켜줄 수도 있다.)
- 로컬에 maven이 설치 안되있을 경우 아래와 같이 해줘야한다.
1
2
mvnw package<br>
mvnw spring-boot:run<br>
4) Application Endpoints
- @SpringBootApplication = @EnableAutoConfiguration + @ComponentScan + @Configuration
- @EnableAutoConfiguration -> Auto Config를 활성화 시켜준다.
- @ComponentScan -> 이 클래스가 있는 패키지 및 하위패키지들을 모두 스캔 해 준다.
- @Configuration -> 설정파일에 관련 클래스임을 지정
- Run을 수행하게 되면 톰캣이 시작되면서 어플리케이션 시작되게 되어있음
5) Spring MVC
- thymeleaf -> sever-side에서 돌아가는 엔진
6) Spring Security
pom.xml에 라이브러리 추가
security 관련 설정
7) Application.properties
- application관련 설정 파일
8) Application Run
실습
9) JPA
- CrudRepository라는 인터페이스에 클래스이름과 primary key타입만 만들어주면 DAO를 전부 다 제공해준다.
제공된 CrudRepository만 넣어주면 자동적으로 다 만들어주고 추가적인 메소드만 넣어주면 된다.
- Spring Data JPA는 아래 세 인터페이스를 포함한다.
- 1) CrudRepository -> Crud관련 기능
- 2) PagingAndSortingRepository -> 레코드가 많을 경우엔 페이지 단위로 나누고 정렬해주는 기능
- 3) JpaRepository -> 추가적인 기능들을 몇 가지 더 제공
Spring data Jpa 사용 안할 경우
Spring data Jpa 사용 할 경우
- 아래와 같이 추가적인 메소드를 제공해 줄 수 있다.
메소드 이름을 통해서 자동적으로 로직이 수행되도록 되어있다.
- 이와 같이 Spring data JPA를 통해서 클래스이름과 키의 타입만 적어주면 자동적으로 스프링에 의해 코드가 만들어진다.