BackEnd/SpringBoot

1.WebSocket  의존성 추가Spring Boot 프로젝트에서 WebSocket 기능을 사용하기 위해 필요한 의존성을 추가해준다. org.springframework.boot spring-boot-starter-websocket    2.WebSocketConfigWebSocket 메시지 브로커를 활성화한다.STOMP를 기반으로 한 메시징 기능을 활성화하여 클라이언트-서버 간 실시간 통신을 가능하게한다.@Configuration@EnableWebSocketMessageBroker // 웹소켓 메시지 브로커 활성화public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {   2-1.configureMessageBro..
1.Spring Boot Actuator애플리케이션의 운영 및 모니터링을 위한 기능을 제공하는 라이브러리다.엔드포인트를 통해 확인이 가능하다.   1-1.의존성추가Actuator 사용을 위해 pom.xml에 의존성을 추가해줬다. org.springframework.boot spring-boot-starter-actuator   1-2. 엔드포인트 접근 권한설정actuator엔드포인트를 테스트할 목적이므로 우선 인증권한 없이 접근 가능하게 SecurityConfig에서 설정한다.@BeanSecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .cors(cors -> cors.co..
1.log aspect서비스와 컨트롤러의 모든 메서드가 실행될 때마다 로그를 남기는 Aspcet를 추가했다. 따로 큰 목적은 없고 디버깅때 사용하기위해 만들어봤다.@Aspect@Component@Slf4jpublic class LoggingAspect { // 서비스나 컨트롤러의 메소드가 실행될 때마다 로그를 남기기 위한 어드바이스 @Around("execution(* com.shopping.service..*(..)) || execution(* com.shopping.controller..*(..))") public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable { Object result =..
application.properties에 이거 설정 넣으면됨springdoc.swagger-ui.persistAuthorization=true
0.추가 이유Redis 연결 오류에 대한 예외처리가 @ControllerAdvice를 사용한 GlobalExceptionHandler에서 안잡히고 로그를 저렇게 더럽혀서 Spring MVC 컨트롤러에서 발생한 예외가 아닌 redis 예외를 처리할 클래스를 생성하기로 했음  여기서 Filter 계층에서 redis 예외가 발생하는거같은데 이건 @ControllerAdvice 또는 @ExceptionHandler로 처리할수없다.[클라이언트 요청] → [Filter] → [Spring Security 필터] → [DispatcherServlet (Spring MVC)] 이건 @ControllerAdvice 또는 @ExceptionHandler에서 처리가능한 영역[DispatcherServlet] → [Contr..
0.스케쥴링스케줄링(Scheduling)은 특정 작업(Task)을 일정한 시간 간격(Time Interval)이나 특정 시간(Time)에 자동으로 실행되는 시스템이다. 이번에는 자주 db에 접근해야하여 변화시키는 조회수를 redis와 스케쥴링을 통해 DB Update를 줄이는것이 목적이다.   1. 조회수 업데이트 스케쥴러fixedRate 주기마다 redis에 저장해둔 product:views의 값을 DB의 각 상품의 조회수에 더해주는 스케쥴러다.@Component@RequiredArgsConstructor@Slf4jpublic class ProductViewScheduler { private final String REDIS_KEY = "product:views"; private final ..
0.기존방식기존에는 이미지 업로드 기능이 없이 다음처럼 ProductCreateRequestDTO 내부에 url을 받아서 넣는 방식으로 있었기에 이번에 이미지를 업로드해서 하도록 만들었다.@Operation(summary = "판매자 상품 추가", description = "판매자가 새로운 상품을 추가합니다.")@PostMapping("/{memberId}/product/create")@PreAuthorize("hasRole('ROLE_ADMIN') or #memberId == authentication.principal.id")public ResponseEntity createProduct(@Valid @PathVariable Long memberId, @Valid @RequestBody ..
1.RedisConfig Redis를 설정하여 Redis 서버와 연결하고 값은 JSON 형식으로 직렬화하여 Redis에 저장할 수 있도록 설정한 파일을 생성했다.@Configuration@EnableCachingpublic class RedisConfig { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate(); template.setConnectionFactory(connectionFactory); template.setKeySerializer(new StringRedisSeri..
박종범_
'BackEnd/SpringBoot' 카테고리의 글 목록 (4 Page)