전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (174)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Springboot/블로그만들기

[Springboot] 블로그 만들기 (18)_회원가입(3)

2023. 11. 27. 18:46

Service 생성

 

UserService.java

package com.lwj.blog.service;

import javax.transaction.Transactional;

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

import com.lwj.blog.model.User;
import com.lwj.blog.repository.UserRepository;

// 스프링이 컴포넌트 스캔을 통해서 Bean에 등록을 해줌. IoC를 해준다.
@Service
// service : 트랜젝션 관리를 위해 사용
public class UserService {

	@Autowired
	private UserRepository userRepository;
	
	@Transactional // 전체가 성공하면 commit 실패시 rollback
	public void 회원가입(User user) {
		userRepository.save(user);
	}
}

 

 

ResponseDto.java 수정

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ResponseDto<T> {

	int status;
	T data;
}

 

 

GlobalExceptionHandler.java 수정

@ControllerAdvice // 어느파일에서나 Exception이 발생해도 이 함수를 타게하기 위한 어노테이션
@RestController
public class GlobalExceptionHandler {

	@ExceptionHandler(value=Exception.class)
	public ResponseDto<String> handleArgumentException(IllegalArgumentException e) {
		return  new ResponseDto<String>(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
	}
}

 

 

userApplicationController.java 수정

@RestController
public class UserApiController {
	
	@Autowired
	private UserService userService;
	
	@PostMapping("/api/user")
	public ResponseDto<Integer> save(@RequestBody User user) { //userName, password, email
		System.out.println("UserApiController : save 호출됨");
		// 실제로 DB에 insert를 하고 아래에서 return이 되면 된다.
		user.setRole(RoleType.USER);
		userService.회원가입(user);
		return new ResponseDto<Integer>(HttpStatus.OK.value(), 1); // 자바오브젝트를 JSON으로 변환해서 리턴(Jackson)
	}
}

 

테스트

 

회원가입 실패시

오류코드와 함께 값이 insert되지 않는다.

unique 값인 userName을 중복으로 insert 한 경우


참고 유튜브 (메타코딩님 강의)

https://youtu.be/f5zHFb1BHmY?si=3Z9DqcriDgw9HoEz

    'Springboot/블로그만들기' 카테고리의 다른 글
    • [Springboot] 블로그 만들기 (20)_스프링 시큐리티(1)_요청주소 변경
    • [Springboot] 블로그 만들기 (19)_로그인(전통적인 방식)
    • [Springboot] 블로그 만들기 (17)_회원가입(2)
    • [Springboot] CONSOLE PERFORMANCE WARNING (from Ansi Console) !
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바