본문 바로가기

spring boot

spring aop AOP DI 추가 implementation 'org.springframework.boot:spring-boot-starter-aop' controller @Slf4j @RestController @RequestMapping("/api") public class RestApiController { @GetMapping("/get/{id}") public String get(@PathVariable Long id, @RequestParam String name){ return String.format("%s-%s",id, name); } @PostMapping("/post") public UserDto post(@RequestBody UserDto userDto){ return userDto; } @Dec.. 더보기
spring webflux swagger config - spring boot version org.springframework.boot spring-boot-starter-parent 2.3.3.RELEASE - swagger maven dependency io.springfox springfox-boot-starter 3.0.0 io.springfox springfox-oas 3.0.0 - swagger config @Configuration @EnableOpenApi public class SwaggerConfig { @Bean public Docket apiConfig() { return new Docket(DocumentationType.SWAGGER_2) .groupName("version_1.0") .enable(true) .select() ... 더보기
Spring Batch (정리) 해당 글은 과 기타 를 참고하여 정리한 내용 입니다. Spring Boot Batch 장점 - 대용량 데이터 처리에 최적화 - 효과적인 통계처리와 같은 재사용 가능한 필수 기능 지원 - 자동화 처리 - 예외사항과 비정상 동작에 대한 방어 기능 Spring Boot Batch 주의 사항 - 복잡한 구조와 로직을 피할것 - 데이터 무결성을 유지하는 유효성 검사 등의 방어책 필요 - 잦은 I/O 사용 최소화를 위한 개발 필요 - Batch 처리시 다른 프로젝트에 영향을 주는지 확인 할것 - Spring boot batch 는 스케줄러를 제공 하지 않음 해결책: Quartz Framework, Jenkins 장점: Quartz 사용시 클러스터링 및 다양한 스케줄링, 실행 이력 관리가능 비추천: 리눅스의 cron.. 더보기
spring boot exception 처리를 위한 enum 클래스 활용 오류 발생시 json 형태의 커스텀한 객체를 던지고 싶다.예외처리시 오류 코드와 오류 메시지는 enum 클래스를 활용한다. 케이스별 예외에 대한 정의를 enum 으로 정의 한다. public enum ServiceError { BIND_ERROR(){ @Override public ResultError getResultError() { String message = getMessage(); return ResultError.builder() .httpStatus(HttpStatus.BAD_REQUEST) .resultCode("40000") .resultMessage(StringUtils.isEmpty(message) ? "Binding Error." : message) .build(); } }, EMA.. 더보기
Spring boot jar 파일 Linux 서버 실행 등록 하기 ### Spring boot Linux 서버 실행 등록 하기 * step 01 [maven 수정] ```xml org.springframework.boot spring-boot-maven-plugin true ```` * step 02 [시스템 서비스 등록] sudo vi /etc/systemd/system/서비스명.service ```sql [Unit] Description=설명 추가 After=networking.service [Service] User= ExecStart=/XXX.jar SuccessExitStatus=143 WorkingDirectory= [Install] WantedBy=multi-user.target ``` * step 03 [실행 가능 파일로 변경] chmod +x XXXX... 더보기
Spring 비동기 사용 방법(Async in Spring boot) 프로퍼티 설정 my.task.core.poolsize=10my.task.capacity=50my.task.max.poolsize=20my.scheduler.poolsize=20 설정 클래스 @Configuration@EnableAsyncpublic class MyBean{ @Bean @ConfitureationProperties(prefix="my.task") public Executor taskExecutor() { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); /* 코드상에 명시적으로 설정 하려면 아래 주석 처리 부분을 사용 */ //taskExecutor.setCorePoolSize(10); //taskExecutor.set.. 더보기