๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

Spring boot ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์ฝ”๋“œ

ํด๋”๊ตฌ์กฐ

dto

UserDTO.java

package com.folder.app.dto;

import java.time.LocalDate;
import lombok.Data;

@Data
public class UserDTO {
    private int no;
    private String name;
    private String email;
    private Boolean gender;
    private Boolean del;
    private LocalDate regDate;
}

Database

CREATE TABLE user3 (
	NO int NOT NULL AUTO_INCREMENT PRIMARY KEY,
	name varchar(100) NOT NULL,
	email varchar(200) NULL,
	pwd varchar(100) NOT NULL,
	gender boolean NOT NULL DEFAULT 1,
	del boolean NOT NULL DEFAULT 0,
	regDate datetime NOT NULL DEFAULT now()
);

dtoํŒŒ์ผ์€ sql์—์„œ ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๊ณผ UserDTO ํด๋ž˜์Šค์—์„œ ์„ ์–ธํ•œ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋“ค๊ณผ ์ผ์น˜ ์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ’๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” daoํด๋”(Repository)์— ์žˆ๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜๊ฐ’์ด ์ตœ์ข…์ ์œผ๋กœ dto์— ์žˆ๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ResultDTO.java

package com.folder.app.dto;

import lombok.Data;

@Data
public class ResultDTO {
    private Boolean state;
    private Object result;
    private String message;
}

ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ๋ฉค๋ฒ„๋ณ€์ˆ˜

Controller

์š”์ฒญ) Client๋กœ ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„ Application Layer์— ์ฒ˜๋ฆฌ๋ฅผ ์œ„์ž„
์‘๋‹ต) Application Layer์˜ ๊ฒฐ๊ณผ๋ฅผ ์ตœ์ข… Client๋กœ ์ „๋‹ฌ

package com.folder.app.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import com.folder.app.dto.ResultDTO;
import com.folder.app.service.UserService;

@RestController
public class DataController {

    @Autowired UserService uService;
    
    @PostMapping("/findAll")
    public ResultDTO findAll(){
        return uService.findAll(); 
    }

}

UserService ์„œ๋น„์Šค์— ๊ฐ์ฒด๋ฅผ uService ๋ณ€์ˆ˜์— ๋„ฃ์–ด์ค€๋‹ค.
findAll() ํ•จ์ˆ˜์—์„œ UserService ํด๋ž˜์Šค ์•ˆ์— ์žˆ๋Š” findAll์„ ํ˜ธ์ถœํ•œ๋‹ค.
findAll() ํ•จ์ˆ˜๋Š” ๋ฐ˜ํ™˜ํ˜•์„ ResultDTO์— ์žˆ๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜๋“ค๋กœ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
state(Boolean), result(Object), message(String)๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๊ฒŒ ๋œ๋‹ค.

service

UserService.java

package com.folder.app.service

import com.folder.app.dto.ResultDTO;

public interface UserService{
	public ResultDTO findAll()
}

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

UserServiceImp.java

package com.folder.app.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.folder.app.dao.UserDao;
import com.folder.app.dto.ResultDTO;
import com.folder.app.dto.UserDTO;

@Service
public class UserServiceImp implements UserService {
    private ResultDTO rDto;    

    @Autowired UserDao uDao;

    @Override
    public ResultDTO findAll(){
            rDto = new ResultDTO();
        List<UserDTO> resultList = uDao.findAll(); 
        //resultList์— uDao์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.
        if(resultList != null){
            rDto.setState(true);
            rDto.setResult(resultList);
        }else{
            rDto.setState(false);
        }
        return rDto;
    }
}

dao

UserDao.java

package com.folder.app.dao;

import java.util.List;
import com.folder.app.dto.UserDTO;

public interface UserDao {
  public List<UserDTO> findAll();

}

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

UserDaoImp.java

package com.folder.app.dao;

import java.util.List;
import org.springframework.stereotype.Repository;
import com.folder.app.dto.UserDTO;

@Repository
public class UserDaoImp implements UserDao {
  @Override
  public List<UserDTO> findAll() {
    return null;
  }
}
profile
์˜ค๋Š˜๋ณด๋‹จ ๋‚ด์ผ์ด ๊ฐ•ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!!๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN