블로그 패키지 생성하기
- 라이브러리 관리는 Maven
- jar 파일로 패키징
- 자바 버전 8
의존성 설정하기
6가지 라이브러리 세팅하기
- Spring Boot DevTools : 프로젝트에 파일이 변경됐을때 자동 재시작을 해줌
- Lombok : getter,setter,생성자를 어노테이션을 통해 자동생성
- Spring Data JPA : JPA를 통해서 DB를 만듬
- MySQL Driver :
- Spring Security : 보안적인 여러가지 기능제공
- Spring Web : 어노테이션을 쓰기위함, 프로젝트 내부에 톰캣을 기본탑재하고 있음
( OAuth2 Client 는 카카오 로그인 네이버 로그인에 도움주는 라이브러리이다. 쓰지 않고 직접 구현해보자 )
+ 추가 라이브러리
pom.xml 에 가서 아래의 라이브러리도 추가를 해준다.
<!-- 시큐리티 태그 라이브러리 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
<!-- JSP 템플릿 엔진 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
jsp 템플릿 엔진은 기본적으로 지원하지 않는다. 그래서 jsp를 src-main 에 파일을 따로 넣어줘야한다
넣은 jsp 파일을 인식하게 하려면 jasper 라이브러리가 필요하다
모든 시큐리티 라이브러리, mysql 라이브러리는 지금 쓸게 아니라서 주석 처리를 해준다.
※ 절대하면 안되는 패키지 생성법
com.cos.blog.test → com.cos.test 만드는 것 안됨
왜?
class Test() {
void hello() { // 메서드 호출
A a = new A(); // a 변수는 hello 메서드가 호출이 끝나면 사라짐 = 지역변수 (다른클래스에 공유할 수 없음.)
} // 메서드 호출 끝
}
new 하면 a 변수를 가르키는 heap 공간을 만든다. 또 new 하면 heap공간이 계속 생기고 또 생기고 결국 관리하기 힘듬
그래서
스프링 컨테이너에 a 변수 , b변수 등등 넣어서 관리를 하고 내가 가져가서 쓴다 = 이것이 '제어의 역전'
제어의 역전은 컴퍼넌스 스캔을 한다.
컴퍼넌스 스캔이란
패키지 이하를 모두 스캔하여 필요한 것들을 메모리에 로드(IoC)하고 싱글톤 패턴으로 관리하는 것
메모리에 로드 = 스프링 컨테이너에 넣은 모든 객체의 변수를 스캔하여 띄우는 것
예를 들어
com.cos.blog 패키지 이하만 스캔해서 패키지 스캔을 하고 컨테이너에 변수를 띄운다.
com.cos.blog.controller
.resource
.domain
com.cos.test 는 com.cos.blog 패키지 이하가 아니라서 스캔을 하지않고 메모리를 안띄우게 됨
하지만 스프링이 com.cos.blog 패키지 이하를 스캔하여 모든 파일을 메모리에 new하는 것은 아니다.
특정 어노테이션이 붙어있는 클래스 파일만 new해서 스프링 컨테이너에 관리를 해준다.
com.cos.blog.test 패키지를 만들어보자
[ BlogControllerTest ]
@RestController
public class BlogControllerTest(){
@GetMapping("/test/hello")
public String hello(){
return "<h1>hello spring</h1>";
}
}
http://localhost:8080/test/hello 를 치면 hello spring 이 화면에 뜬다.
오류가 난다면
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
pom.xml 에 가서 jpa 라이브러리 주석처리해주면 오류해결
'Spring boot | 블로그 만들기' 카테고리의 다른 글
회원삭제 테스트 | Exception 처리 (0) | 2022.11.05 |
---|---|
회원수정 테스트 | save()와 @Transactional 더티체킹 (1) | 2022.11.05 |
회원가입 테스트 | insert , Enum 사용법 (1) | 2022.11.04 |
테이블 만들기 User, Board, Reply (0) | 2022.11.03 |
MySQL 설정, DB와 프로젝트 연결 (1) | 2022.10.31 |