TIL

1_5. CRUD 구현과 MapStruct

꿀승 2025. 1. 9. 14:49
728x90
반응형
SMALL

학습내용

  1. 의존성 주입방법
  2. Service 네이밍 규칙
  3. MapStruct 실습

학습 정리

1. 의존성 주입방법

  • Field Injection

    # 필드에 직접 의존성 주입하는 방식으로 @Autowired 사용
    
    @Service
    public class UserService {
        @Autowired
        private UserRepository userRepository;
    }
  • Constructor Injectin

    # 생성자를 통해 의존성을 주입하는 방법 SpringBoot에서는 @Autowired 없어도 자동으로 주입
    # 대부분 해당 방식으로 의존성 주입
    @Service
    public class UserService {
        private final UserRepository userRepository;
    
        public UserService(UserRepository userRepository){
                this.userRepository = userRepository;
        }
    }
  • Setter Injection

    # Setter를 이용하여 주입, 안정성이 떨어짐
    @Service
    public class UserService {
        private UserRepository userRepository;
    
        @Autowired
        public void setUserRepository(UserRepository userRepository) {
            this.userRepository = userRepository;
        }
    }

2. Service 네이밍 규칙

  • get vs find
    get은 데이터를 반드시 반환하는 경우 사용

    public User getUserById(Long id) {
      return userRepository.findById(id)
          .orElseThrow(() -> new EntityNotFoundException("User not found"));
    }

    find는 데이터가 존재하지 않을 수 있는 경우 사용 / 주로 Optional 반환

    public Optional<User> findUserByEmail(String email) {
      return userRepository.findByEmail(email);
    }

3. MapStruct

728x90
반응형
LIST