
user-service에서 아래 코드 작성하기
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/user-db username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true client: point-service: url: http://localhost:8082
public class AddPointsRequestDto { private Long userId; private int amount; public AddPointsRequestDto(Long userId, int amount) { this.userId = userId; this.amount = amount; } public Long getUserId() { return userId; } public int getAmount() { return amount; } }
@Component public class PointClient { private final RestClient restClient; public PointClient( @Value("${client.point-service.url}") String pointServiceUrl ) { this.restClient = RestClient.builder() .baseUrl(pointServiceUrl) .build(); } public void addPoints(Long userId, int amount) { AddPointsRequestDto addPointsRequestDto = new AddPointsRequestDto(userId, amount); this.restClient.post() .uri("/points/add") .contentType(MediaType.APPLICATION_JSON) .body(addPointsRequestDto) .retrieve() .toBodilessEntity(); } }
@Service public class UserService { private final UserRepository boardRepository; private final PointClient pointClient; public UserService(UserRepository userRepository, PointClient pointClient) { this.userRepository = userRepository; this.pointClient = pointClient; } public void signUp(SignUpRequestDto signUpRequestDto) { User user = new User( signUpRequestDto.getEmail(), signUpRequestDto.getName(), signUpRequestDto.getPassword() ); User savedUser = this.userRepository.save(user); // 회원가입하면 포인트 1000점 적립 pointClient.addPoints(savedUser.getUserId(), 1000); } ... }


