Implemented inserting test data and debug interceptors

This commit is contained in:
Andrey Terentev 2023-11-26 21:08:46 +07:00
parent 8cd58228dd
commit b0f23f129d
2 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,33 @@
package ru.dragonestia.loadbalancer.config;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.lang.NonNull;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import ru.dragonestia.loadbalancer.interceptor.DebugInterceptor;
import ru.dragonestia.loadbalancer.model.Node;
import ru.dragonestia.loadbalancer.model.type.LoadBalancingMethod;
import ru.dragonestia.loadbalancer.repository.NodeRepository;
@Profile("test")
@Configuration
@RequiredArgsConstructor
public class TestConfig implements WebMvcConfigurer {
private final NodeRepository nodeRepository;
@Override
public void addInterceptors(@NonNull InterceptorRegistry registry) {
registry.addInterceptor(new DebugInterceptor());
}
@Bean
void createNodes() {
nodeRepository.createNode(new Node("game-servers", LoadBalancingMethod.ROUND_ROBIN));
nodeRepository.createNode(new Node("game-lobbies", LoadBalancingMethod.LEAST_PICKED));
nodeRepository.createNode(new Node("hub", LoadBalancingMethod.SEQUENTIAL_FILLING));
}
}

View File

@ -0,0 +1,24 @@
package ru.dragonestia.loadbalancer.interceptor;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.log4j.Log4j2;
import org.springframework.lang.NonNull;
import org.springframework.web.servlet.HandlerInterceptor;
import java.util.Arrays;
@Log4j2(topic = "DEBUG INTERCEPTOR")
public class DebugInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler) {
log.info("[" + request.getMethod() + "] " + request.getRequestURI());
var map = request.getParameterMap();
for (String key : map.keySet()) {
log.info(" " + key + ": " + Arrays.toString(map.get(key)));
}
return true;
}
}