본문 바로가기
Spring/Spring Boot 게시판 만들기

[Spring Boot] UserService, BoardService 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 5부]

by 임채훈 2019. 2. 24.


주요기능인 로그인, 회원가입, 회원정보수정, 회원탈퇴 및 삭제 등을 비롯한


컨트롤러에서 검증할때 사용할 한명의 유저정보를 가져올 메소드와 전체유저의 정보를 가져올 메소드를 정의합니다.



- 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파일을 작성해보도록 하겠습니다.


댓글