반응형
null처리에 대해서 맘에 드는 글이 없어서 직접 정리하게 되었음 프로젝트를 시작할 때 @NonNullApi를 패키지 레벨에 선언해놓자. @NonNullApi package kr.webgori.lolien.api; 패키지에 package-info.java 파일을 만들고, @NonNullApi 애너테이션을 선언하면 패키지 하위의 class method의 인자 또는 리턴이 null일 경우 IDE에서 Warning으로 알려준다. 기본으로 null을 쓰지 말자 /** * 이렇게 사용하지 마시고. */ private void wrongWay() { User user = null; } /** * 이렇게 사용하세요. */ private void correctWay() { User user = new User(); }..
root@nas:~# /usr/local/tomcat/bin/catalina.sh stop Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL..
서버의 상태를 확인하려면 Health Check를 사용하면 된다. 설명은 Spring Boot 2.0.9.RELEASE 기준이다. implementation('org.springframework.boot:spring-boot-starter-actuator') Health Check 기능은 spring-boot-starter-actuator 라이브러리의 기능 중 하나이므로 사용하려면 actuator 라이브러리를 추가해야한다. spring-boot-starter-actuator 라이브러리는 Spring Boot 버전과 동일한 버전을 사용해야 한다. management: endpoints: web: base-path: /application path-mapping: health: healthcheck endp..
1. 개요 라이브러리가 OpenAPI 3.0 스펙에 맞는 JSON을 자동으로 만들어 주면, Swagger UI는 만들어진 JSON을 바탕으로 화면에 표시 해줍니다. Spring Boot 2.0.9.RELEASE로 테스트 하였습니다. 2. 문제 해결 messageconverter가 설정되어 있어서 Swagger UI가 /v3/api-docs/ end-point로 접근시 String으로 감싼 JSON 형으로 리턴됨. HttpServletRequest 객체의 getRequestURI 메소드를 사용하여 요청한 Uri를 가져옴. Uri가 /v3/api-docs/ 또는 /v3/api-docs/swagger-config 인지 확인하여 원본 내용을 리턴하게 예외처리. (e.g. json이면 json으로) 3. buil..
Spring에서 로컬 캐시가 필요한 경우 Ehcache를 사용하면 편리하다. dependencies { implementation('org.springframework.boot:spring-boot-starter-cache') implementation group: 'javax.cache', name: 'cache-api', version: '1.1.1' implementation group: 'org.ehcache', name: 'ehcache', version: '3.8.1' } import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Configuration; @Conf..
Spring에서 스케줄러를 사용해야 할 경우 보통은 Quartz를 사용한다. Spring Boot에서는 자체적으로 스케줄러 기능을 지원하여 사용하기 편하다. 사용법은 아래와 같다. @EnableScheduling @SpringBootApplication public class HomeApplication { public static void main(String[] args) { SpringApplication.run(HomeApplication.class, args); } } @Service public class UserService { // 1분마다 스케줄링 @Scheduled(cron = "0 * * ? * *") public void logEveryMinute() { logger.info("ex..