// ViewResolver -> @ResponseBody이 있다면 문자열을 전송한다 / @ResponseBody이 없다면 파일명을 찾아서 전송한다
jsp 같은 것을 템플릿 엔진이라고 한다
부트진영에서 jsp를 버렸음 (하지만 아직까지 회사에서 jsp를 사용한다)
최근에 가장 핫한 것은 Mustache
여기에 템플릿 엔진 파일을 넣으면 부트가 자동으로 찾는다
서픽스 프리픽스
확장자 적으면 안된다
뷰리졸버가 찾는 주소
이클립스에서는 기본적으로 mustache를 지원하지 않는다
html로 만들어보자
html로 만들었기 때문에 자동완성이 된다
타임리프- 태그에 모든 문법을 넣어서 처리 (th:text=${object.value})
타임리프 그루비 등은 문법이 많아서 템플레이트에서 코딩하게 된다
(너무 많은 것을 지원해주기 때문에 자연스레 그렇게 된다)
그렇게 되면 협업시 불편해진다
템플레이트는 뿌리는 용도로만 사용하는 것이 서로 편하다
mustache는 문법이 적어서 뿌리는 용도로만 쓸 수 있다 (배우기도 쉬움)
DI autowired 를 편하게 하는 방법이 파라미터에 적는 것이다
-----------
----------
헤더 푸터 추가하기
------------------
적어놓기만 하면 자동으로 설정됨
스프링에서는 권장하나
쓰기에 좋기 않기 때문에
yml파일로 바꾼다 (JSON이 변형된 것이라고 생각하면 됨, 중괄호와 쌍따옴표 뺌)
properties파일과 똑같은데 가독성이 좋다
server:
무조건 자동완성
탭을 쓰면 안된다
아마존에 배포할 때 포트는 80포트 jar파일로 패키징
스프링레거시에서는 jsp파일에 접근하는 것을 원천봉쇄하기 위해 web-inf 폴더에 넣는다
(mvc 모델1은 사용하지 못한다는 뜻)
(컨트롤러 통해서 가는 것이 mvc 모델2)
스프링 부트는 jsp를 지원하지 않고 web-inf를 사용하지 않는다 (templates를 사용)
그래서 yml파일에서 프리픽스 서픽스를 설정
무조건 embed 써야함
디폴트 경로 - src/main/webapp/(프리픽스)/return명(서픽스)
이제 jsp를 만들 수 있다
--------------------
안되면
서버끄고
project- clean
maven - update project
서버다시켜기
------------------------
버퍼로 쿼리문을 날리기 위함
1. xml로 데이터베이스연결
2.yml로 데이터베이스연결
3.자바파일로 데이터베이스 연결
3개다 가능하다
pom.xml 에 추가하는 방식
자바에서 dataSource 객체 -> 데이터 풀링 기법
미리 프로젝트 생성시 적용해도 된다
starter 는 스프링부트라고 생각하면 된다
다른 것들과 다르게 버전을 넣어야 한다
사용하는 이유
퍼시스턴스 (자바 오브젝트로 매핑)
Select 해서 받아오는 데이터를 rs를 자바오브젝트로 쉽게 변환
문서 확인
https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
autowired를 사용하지않고 매개변수에 넣으면
스프링부트가 자동으로 해당 객체를 찾아서 띄운다 (없으면 오류)
Member 객체로 자동으로 담아주는 역할
인터페이스로 만들기
datasource가 동시접속시 순차적 처리를 한다
메모리에 띄울때 @Bean이라는 어노테이션이 있으면 리턴값을 IOC로 등록해준다
(스프링 컨텍스트에 싱글톤 패턴으로 담아간다)
*.xml 이라고 쓴 이유는 여러테이블(객체)가 있을 수 있기 때문
https://github.com/codingspecialist/Springboot-MyBatis-Blog-V3
create user 'spring'@'%' identified by 'bitc5600';
GRANT ALL PRIVILEGES ON *.* TO 'spring'@'%';
create database spring;
use spring;
CREATE TABLE user(
id int auto_increment primary key,
username varchar(100) unique not null,
password varchar(100) not null,
email varchar(100),
profile varchar(200),
createDate timestamp
) engine=InnoDB default charset=utf8;
CREATE TABLE post(
id int auto_increment primary key,
title varchar(100) not null,
content longtext,
userId int,
createDate timestamp,
foreign key (userId) references user (id) on delete set null
) engine=InnoDB default charset=utf8;
CREATE TABLE comment(
id int auto_increment primary key,
userId int,
postId int,
content varchar(300) not null,
createDate timestamp,
foreign key (userId) references user (id) on delete set null,
foreign key (postId) references post (id) on delete cascade
) engine=InnoDB default charset=utf8;
설정을 자바파일로 만들어져야한다
스프링부트에서는 yml에서 설정해놓으면 자동적으로 자바코드로 변환된다
<-object <-rs
Controller - reopsitory - SQLSession - DataSource - DB(MySQL)
SQLSessionFactory가 SQLSession을 만든다
DataSource+매퍼파일등록(repository라는 클래스와 연결되어 있음)
SQLSession은 CRUD 함수를 가지고 있다
SQLSession은 데이터베이스에 연결 할 수 있는 유일한 객체
CREATE TABLE member(
id int auto_increment primary key,
username varchar(100) not null,
phone longtext
) engine=InnoDB default charset=utf8;
----
'Server > Spring Boot' 카테고리의 다른 글
spring boot //200720 // (0) | 2020.07.20 |
---|---|
MyBatis vs JPA (0) | 2020.07.17 |
200717// jsp와 spring의 url요청차이, 톰캣 / dispatherServlet / 서비스 / 스프링부트 작업 세팅 (0) | 2020.07.17 |
스프링 부트 시작하기 // 세팅 setting (0) | 2020.07.10 |
200710 // 스프링 어노테이션 / 스프링 레거시 컴포넌트 / 스프링 용어 aop / di / (0) | 2020.07.10 |