- 비즈니스계층 : 고객의 요구사항을 반영하는 계층. 프레젠테이션 계층과 영속 계층의 중간 다리 역할.
로직을 기준으로 처리. 비즈니스 영역에 있는 객체들은 service용어를 많이 사용. - 영속계층: 데이터베이스를 기준으로 설계를 나눠 구현
설계 시 계층 간의 연결은 인터페이스를 이용해서 느슨한 연결을 함.
Service측에서는 Client입장에서 업무에 관련된 서비스 메소드이름으로 지어준다.
ex) 게시물 등록 -> register
- get( ) : 특정한 게시물을 가져옴
- getList( ) : 전체 리스트를 구함
- 메서드의 리턴 타입을 처음부터 결정해서 진행 가능
BoardServiceImpl
- @Log4j : pom.xml에서 주석처리 해주어야 imple.java파일에서 log4j에러 사라짐
- @Service : 비즈니스 영역을 담당하는 객체임을 표시하기 위해 사용
- @AllArgsConstructor : 모든 파라미터를 이용하는 생성자 생성
BoardMapper를 주입받는 생성자가 만들어지게 됨. - BoardServiceImple이 정상적으로 동작하기 위해서는 BoardMapper객체 필요
서비스 객체 설정
비즈니스 계층의 인터페이스와 구현 클래스가 bean으로 인식되게 하기 위해 @Service 어노테이션이 있는 com.zerock.service패키지를 스캔하도록 root-context.xml에 추가 필요
Test
BoardService객체가 제대로 주입 가능한지 확인
Controller가 사용하는 것이 Service이고 Service가 사용하는 것이 Repository이다
입력방식이 필요한 것은 post방식
데이터 등록하는 register
수정하는 update
삭제하는 delete
웹페이지에서 submit
action에 url주고 submit하는 방식 가능
ajax요청 (결과를 무엇으로 받느냐 처리가 복잡해질 수 있음
아래와같이 변경
list.jsp 에서 <tbody></tbody>태그 삭제
list.jsp
라이브러리 추가 해줌
list이름으로 넣어준 컬렉션을 board에 담아 루프가 돈다는 의미
필요하다면 데이터를 추가해서 한번 쓰고 넘겨주는 것이 가능
list.jsp로 넘기면서 데이터가 필요하다면 attiribute를 집어넣어 사용할 수 있다.
list에는 매개변수가 없으므로 굳이 넘길 필요가 없음.
modify했을때 return했을때 redirect로 간다
list에 추가적으로 데이터를 넘겨준다면 attirbute를 추가해서
redirect : 클라이언트에 명령 내리는 것.
list.jsp는 모델에 들어가 있는 컬렉션을 출력하게끔 만든 파일이다.
그 작업은 서비스쪽에서 getlist요청이 들어오면 DB에서 받아 전달해줬던 것이다.
redirect하는 것과
서버측에서 결과를 보여주는 것은 (리디렉트X) 요청한 url이 그대로 남아있게 되고
제대로 동작을 시킬 수 없다.
redirect를 하면 register를 통해 요청하게 되면 url이 자동으로 list로 재요청하고,
서버와 클라이언트 동작이 1번이냐
2번이냐에 따라 다르다
리디렉트를 쓰게 되면 서버측에서 클라이언트에 강제로 명령내리는 것 (바꿔서 처리하도록)
페이지 이동시킬 수 있다
모달
div태그를 이용하여 display할 수 있도록 만드는 것
list.jsp
p.248
스크립트가 결과를 받아와서 결과가 제대로 들어왔다면 그 결과를 이용하여 작업할 수 있도록 해준다
처음에는 화면에 안보이게 해놓고 결과를 화면에 보여주겠다는 의미로 해석하면 된다
'개발 공부 > Spring' 카테고리의 다른 글
실습 (0) | 2023.08.30 |
---|---|
게시물 수정/ 삭제/ 모달 (0) | 2023.08.28 |
영속/비즈니스 계층 DB CRUD (0) | 2023.08.24 |
pom.xml 수정 추가 (0) | 2023.08.24 |
JDBC (Mapper) / Exception (0) | 2023.08.24 |