Spring Start Project
boot 3.0이 나오면서 자바8, 11이 지원이 안됨
일단 17버전으로 만들고 다운그레이딩해줄거임
버전은 상관없음 어짜피 바꿀거임
pom.xml
버전에 맞게 바꿔줌
이 프로젝트는 webapp이 통째로 없음 => xxx-context.xml, root-context.xml, view등이 없음
=> 1. 세팅할 수 없음 => boot는 알아서 다해줌
=> 2. jsp를 넣을 수 없음 => boot는 jsp사용을 권장하지 않음
또한
boot는 서버에 프로젝트를 올리지 않음 => 내장 tomcat을 가지고 있음
=> Boot Dachboard
src > main > resources > static에
index.html을 만든다. => 이게 웰컴파일
: 공식문서에 다 적혀있음
src > main > resources > application에는 모든 환경설정을 다적음
server.port=9001 => 포트번호 기본8080인데 바꿔주고
java > com > kh > boot에 spring자바 파일이 있음
빨간줄 => 프로젝트 메이픈 업데이트
application에 환경설정을 더 적어보자
server.port=9001
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=SPRING
spring.datasource.password=SPRING
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
내가 적은 파란색은 문자열데이터라 오타나도 안알려줌
앞에적은 건 오타나면 노란색으로 알려줌ㅎ
-----------------------------------------------------------------
Idol 게시판을 또 만들어보자
DAO가 하는일이 한줄밖에 없음
@Mapper로 interface로 만들어 추상화 시켜줌
=> SqlSessionTemplate 안 넘겨도 됨
@Mapper
public interface IdolMapper {
List<Idol> selectAll();
}
그리고 mapper에는 namespace의 값을 Mapper의 경로부터 인터페이스명까지 적어줘야 함
id명은 Mapper에 적어놓은 메소드명과 똑같이 적으면 됨
<mapper namespace="com.kh.boot.idol.model.dao.IdolMapper">
<select id="selectAll" resultType="Idol">
SELECT
ID,
NAME,
MEMBER,
SONG,
IMAGE,
DESCRIPTION
FROM
IDOL
ORDER
BY
ID
</select>
resultType은 config가 없으니까 원래 경로에 클래스명까지 다 적어야되는데 application파일에
설정을 적어주면 클래스명만 적어도 됨
mybatis.type-aliases-package=com.kh.boot.idol.model.vo
mybatis.mapper-location:classpath:mapper/*.xml
밑에껀 mapper아래 있는 모든 xml파일은 mapper로 쓰겠다는 것
controller
@RestController // 비동기 요청만 받을거임 (JSON타입만 돌려줄거임)
@CrossOrigin("*") // 다른 포트에서 오는 요청을 받겠음
@RequestMapping("/idol")
@RequiredArgsConstructor
public class IdolController {
private IdolService idolService;
@GetMapping
public ResponseEntity<List<Idol>> selectAll(){
List<Idol> idolList = idolService.selectAll();
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
return new ResponseEntity<List<Idol>>(idolList, header, HttpStatus.OK);
}
이렇게 해주면 idol로 매핑들어오면 이 클래스로 돌아오고
Get/Post 매핑값에 따라 다른 메소드를 실행함
그러면 Rest방식에 더 적합하게 됨