if(message!=null) RedirectAttributes.addFlashAttribute("message", message); // 세션 알아서 지워줌
세션알아서지워줌
@RequestMapping("{bo_no}")
경로변수: 경로의 일부분 데이터
이게없어서 classnotfoundexcep 뜸
@Resource(type=ProdServiceImpl.class)
이렇게 받아오면 터짐 <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
<scope>test</scope> <!-- src/test 에서만 사용가능 -->
</dependency>
@RunWith,
@CustomWebApp
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; // 가짜 request
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; // matcher
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; // print
이거 매번 넣기 귀찮으니까
preferences - favorites 에 static import 넣엊귀
new type - browse- 해서 위의 3개 추가
테스트 프레임워크
트랜잭션관리안해도됨 목객체이용해서 하는 테스트라 알아서 db커밋이 안되나봄??
--계층형 답글 구조를 갖고 있는 방명록 구현.
--참고 : https://impresident.tistory.com/guestbook
--방명록 기본 CRUD (RESTful URI 방식으로 구현, 데이터는 json 형태로 표현함.)
--전체 방명록 조회 : /guestBook, GET (페이징 처리)
--방명록 작성 : /guestBook, POST
--방명록 수정 : /guestBook, PUT
--방명록 삭제 : /guestBook, DELETE
--방명록 답글 : /guestBook/상위방명록번호, /POST
--
--모든 기능은 하나의 view layer 내에서 비동기로 처리됨.
CREATE TABLE GUESTBOOK(
GB_NO NUMBER(6), -- 방명록 번호
GB_WRITER VARCHAR2(30) NOT NULL, -- 방명록 작성자
GB_PASS VARCHAR2(300) NOT NULL, -- 인증용 비밀번호
GB_IP VARCHAR2(40) NOT NULL, -- 작성자 IP
GB_CONTENT VARCHAR2(200), -- 방명글
GB_PARENT NUMBER(6), -- 상위방명록번호
GB_DEPTH NUMBER(1) DEFAULT 1, -- 방명록답글의 깊이(루트글:1 부터 답글이 추가될시 깊이가 증가함. 답글 깊이 제한에 사용.)
GB_DATE DATE DEFAULT SYSDATE, -- 작성일
GB_PROFILE BLOB, -- 작성자 프로필 이미지
GB_SECRET CHAR(1),
CONSTRAINT PK_GUESTBOOK PRIMARY KEY(GB_NO)
);
ALTER TABLE GUESTBOOK
ADD CONSTRAINTS FK_GB_GB
FOREIGN KEY (GB_PARENT) REFERENCES GUESTBOOK(GB_NO);
SELECT 'private '||
DECODE( DATA_TYPE , 'NUMBER' ,'Integer ', 'String ' )||
LOWER(COLUMN_NAME)||';'
FROM COLS
WHERE TABLE_NAME = 'GUESTBOOK';