1. Service 인터페이스 작성
- com.example.demo.service.UserService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.example.demo.service; import java.util.List; import com.example.demo.dto.UserDto; public interface UserService { public boolean login (String userId, String userPw); public boolean join (UserDto user); public void modify (UserDto user); public void withdraw (String userId); public UserDto getUser (String userId); public List<UserDto> getUserList(); } | cs |
주요기능인 로그인, 회원가입, 회원정보수정, 회원탈퇴 및 삭제 등을 비롯한
컨트롤러에서 검증할때 사용할 한명의 유저정보를 가져올 메소드와 전체유저의 정보를 가져올 메소드를 정의합니다.
- com.example.demo.service.BoardService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package com.example.demo.service; import java.util.HashMap; import java.util.List; import com.example.demo.dto.BoardDto; public interface BoardService { public void write (BoardDto board); public void modify (BoardDto board); public void remove (int num); public BoardDto getBoard (int num); public List<BoardDto> getBoardList(); public List<BoardDto> getBoardSearchList(HashMap<String, Object> params); } | cs |
BoardService인터페이스에서는 게시글 작성, 게시글 수정, 게시글 삭제, 검색한 게시글을 가져오는(getBoardSearchList)와
컨트롤러에서 사용될 특정한 게시글의 내용을 가져올 메소드와 게시글 전체를 가져올 메소드를 정의해줍니다.
2. ServiceImpl 클래스 작성
- com.example.demo.service.UserServiceImpl.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | package com.example.demo.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.example.demo.dao.UserMapper; import com.example.demo.dto.UserDto; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper uMapper; @Override public boolean login (String userId, String userPw) { // TODO Auto-generated method stub UserDto user = uMapper.selectOneUser(userId); if (user != null) { if (user.getUserPw().equals(userPw)) { return true; } } return false; } @Override public boolean join (UserDto user) { // TODO Auto-generated method stub if (uMapper.selectOneUser(user.getUserId()) == null) { uMapper.insertUser(user); return true; } return false; } @Override public void modify(UserDto user) { // TODO Auto-generated method stub uMapper.updateUser(user); } @Override public void withdraw(String userId) { // TODO Auto-generated method stub uMapper.deleteUser(userId); } @Override public UserDto getUser(String userId) { // TODO Auto-generated method stub return uMapper.selectOneUser(userId); } @Override public List<UserDto> getUserList() { // TODO Auto-generated method stub return uMapper.selectAllUser(); } } | cs |
- com.example.demo.service.BoardServiceImpl.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | package com.example.demo.service; import java.util.HashMap; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.demo.dao.BoardMapper; import com.example.demo.dto.BoardDto; @Service public class BoardServiceImpl implements BoardService { @Autowired private BoardMapper bMapper; @Override public void write(BoardDto board) { // TODO Auto-generated method stub bMapper.insertBoard(board); } @Override public void modify(BoardDto board) { // TODO Auto-generated method stub bMapper.updateBoard(board); } @Override public void remove(int num) { // TODO Auto-generated method stub bMapper.deleteBoard(num); } @Override public BoardDto getBoard(int num) { // TODO Auto-generated method stub return bMapper.selectOneBoard(num); } @Override public List<BoardDto> getBoardList() { // TODO Auto-generated method stub return bMapper.selectAllBoard(); } @Override public List<BoardDto> getBoardSearchList(HashMap<String, Object> params) { // TODO Auto-generated method stub return null; } } | cs |
Impl클래스는 각각의 interface를 상속받아서
정의해두었던 메소드를 작성합니다.
getBoardSearchList는 추후에 실제로 검색 기능을 구현할때 수정하도록 하겠습니다.
추가적으로 게시판 페이징처리도 구현할예정인데
그 때 필요한 메소드들을 마찬가지로 추후에 추가하도록 하겠습니다.
3. 테스트 코드
- com.example.demo.service.BoardServiceImpl.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package com.example.demo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.example.demo.dto.BoardDto; import com.example.demo.dto.UserDto; import com.example.demo.service.BoardService; import com.example.demo.service.UserService; @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class DemoApplicationTests { @Autowired private UserService uService; @Autowired private BoardService bService; @Test public void boardTest() { BoardDto board = new BoardDto(); board.setPassword("1234"); board.setWriter("test"); bService.write(board); for (BoardDto b : bService.getBoardList()) System.out.println(b); } @Test public void userTest() { UserDto user = new UserDto(); user.setUserId("test2"); user.setUserPw("test2"); user.setUserName("테스트2"); user.setUserGender("남"); user.setUserEmail("test@test.test"); uService.join(user); System.out.println(uService.getUser("test2")); System.out.println("로그인 결과 : " + uService.login("test2", "test2")); } } | cs |
실행결과가 아래와 같이 출력됩니다.
다음장에서는 실제로 보여질 View를 부트스트랩(Bootstrap) CSS프레임워크를
사용해서 JSP파일을 작성해보도록 하겠습니다.
댓글