본문 바로가기

🌱JAVA/🌻Service

service를 impl로 사용해야 하는 이유?

# service를 impl로 나누어서 사용해야 하는이유?

결국에는 어떤 컨트롤러가 호출을 하던 독립적인 작업이 수행되도록 하기 위해서이다.

예를들면 service라는 패키지안에 UserService와 UserServiceImpl이라는 인터페이스와 클래스를 만든다.

- UserService

public interface UserService {
    UserDto createUser(UserDto userDto);
}

- UserServiceImpl

@Service
public class UserServiceImpl implements UserService {
    UserRepository userRepository;
    BCryptPasswordEncoder passwordEncoder;

    @Autowired UserServiceImpl(UserRepository userRepository,
                               BCryptPasswordEncoder passwordEncoder) {
        this.userRepository = userRepository;
        this.passwordEncoder = passwordEncoder;
    }

    @Override
    public UserDto createUser(UserDto userDto) {
        userDto.setUserId(UUID.randomUUID().toString());

        ModelMapper mapper = new ModelMapper();
        mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
        UserEntity userEntity = mapper.map(userDto, UserEntity.class);
        userEntity.setEncryptedPwd(passwordEncoder.encode(userDto.getPwd()));

        userRepository.save(userEntity);

        UserDto returnUserDto = mapper.map(userEntity, UserDto.class);

        return returnUserDto;
    }
}

'🌱JAVA > 🌻Service' 카테고리의 다른 글

Service에서 쿼리 결과를 파라미터로 받기  (0) 2022.09.02