From 7cb22f5464c899fc2adfa323428ab50700cd10df Mon Sep 17 00:00:00 2001 From: ckx6954 Date: Mon, 9 Dec 2024 13:10:44 +0900 Subject: [PATCH] =?UTF-8?q?import=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/mybatis/DataSourceConfig.java | 7 ++-- .../common/config/mybatis/MybatisConfig.java | 10 +++--- .../company/localhost/common/dto/MapDto.java | 8 +++-- .../RequestToMapArgumentResolver.java | 29 ++++++++-------- .../wrapper/CachedBodyRequestWrapper.java | 32 +++++++---------- .../common/wrapper/RequestMappingWrapper.java | 13 ++++--- .../company/localhost/utils/JacksonUtil.java | 34 +++++++++---------- .../io/company/localhost/utils/WebUtil.java | 25 ++++++++------ .../io/company/localhost/vo/MemberVo.java | 13 ++----- src/main/resources/datasource.yml | 7 ---- 10 files changed, 76 insertions(+), 102 deletions(-) diff --git a/src/main/java/io/company/localhost/common/config/mybatis/DataSourceConfig.java b/src/main/java/io/company/localhost/common/config/mybatis/DataSourceConfig.java index 1e098bc..b9f399c 100644 --- a/src/main/java/io/company/localhost/common/config/mybatis/DataSourceConfig.java +++ b/src/main/java/io/company/localhost/common/config/mybatis/DataSourceConfig.java @@ -1,15 +1,12 @@ package io.company.localhost.common.config.mybatis; -import javax.sql.DataSource; - +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import net.sf.log4jdbc.sql.jdbcapi.DataSourceSpy; - -import lombok.extern.slf4j.Slf4j; +import javax.sql.DataSource; @Slf4j @Configuration diff --git a/src/main/java/io/company/localhost/common/config/mybatis/MybatisConfig.java b/src/main/java/io/company/localhost/common/config/mybatis/MybatisConfig.java index e605d8a..f5f1cc1 100644 --- a/src/main/java/io/company/localhost/common/config/mybatis/MybatisConfig.java +++ b/src/main/java/io/company/localhost/common/config/mybatis/MybatisConfig.java @@ -1,15 +1,13 @@ package io.company.localhost.common.config.mybatis; -import javax.sql.DataSource; - +import io.company.localhost.common.constants.LocalhostProject; +import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.type.JdbcType; - import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; - import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; @@ -17,8 +15,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; -import io.company.localhost.common.constants.LocalhostProject; -import lombok.extern.slf4j.Slf4j; +import javax.sql.DataSource; @Slf4j @Configuration @@ -40,6 +37,7 @@ public class MybatisConfig { SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBean.getObject(); + assert sqlSessionFactory != null; org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration(); //스네이크 케이스 자동 카멜 케이스로 매핑 diff --git a/src/main/java/io/company/localhost/common/dto/MapDto.java b/src/main/java/io/company/localhost/common/dto/MapDto.java index 7a33c14..3b5a534 100644 --- a/src/main/java/io/company/localhost/common/dto/MapDto.java +++ b/src/main/java/io/company/localhost/common/dto/MapDto.java @@ -1,13 +1,15 @@ package io.company.localhost.common.dto; -import java.math.BigDecimal; -import java.util.Map; - import org.apache.commons.collections.map.ListOrderedMap; import org.springframework.util.ObjectUtils; +import java.io.Serial; +import java.math.BigDecimal; +import java.util.Map; + public class MapDto extends ListOrderedMap { + @Serial private static final long serialVersionUID = -5354101794266218602L; public MapDto() { diff --git a/src/main/java/io/company/localhost/common/resolver/RequestToMapArgumentResolver.java b/src/main/java/io/company/localhost/common/resolver/RequestToMapArgumentResolver.java index 448e50d..703f111 100644 --- a/src/main/java/io/company/localhost/common/resolver/RequestToMapArgumentResolver.java +++ b/src/main/java/io/company/localhost/common/resolver/RequestToMapArgumentResolver.java @@ -1,5 +1,18 @@ package io.company.localhost.common.resolver; +import io.company.localhost.common.annotation.ReqMap; +import io.company.localhost.common.dto.MapDto; +import io.company.localhost.common.webEnum.WebEnum; +import io.company.localhost.utils.JacksonUtil; +import io.company.localhost.utils.WebUtil; +import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.MethodParameter; +import org.springframework.web.bind.support.WebDataBinderFactory; +import org.springframework.web.context.request.NativeWebRequest; +import org.springframework.web.method.support.HandlerMethodArgumentResolverComposite; +import org.springframework.web.method.support.ModelAndViewContainer; + import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -7,20 +20,6 @@ import java.util.Arrays; import java.util.Enumeration; import java.util.List; -import org.springframework.core.MethodParameter; -import org.springframework.web.bind.support.WebDataBinderFactory; -import org.springframework.web.context.request.NativeWebRequest; -import org.springframework.web.method.support.HandlerMethodArgumentResolverComposite; -import org.springframework.web.method.support.ModelAndViewContainer; - -import io.company.localhost.common.annotation.ReqMap; -import io.company.localhost.common.dto.MapDto; -import io.company.localhost.utils.JacksonUtil; -import io.company.localhost.utils.WebUtil; -import io.company.localhost.common.webEnum.WebEnum; -import jakarta.servlet.http.HttpServletRequest; -import lombok.extern.slf4j.Slf4j; - @Slf4j public class RequestToMapArgumentResolver extends HandlerMethodArgumentResolverComposite { @@ -52,7 +51,7 @@ public class RequestToMapArgumentResolver extends HandlerMethodArgumentResolverC // HTTP ServletRequest를 얻어옵니다. HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest(); - MapDto parameterMap = null; + MapDto parameterMap; try { // 요청이 JSON인지 확인 boolean isJson = WebUtil.isJson(request); diff --git a/src/main/java/io/company/localhost/common/wrapper/CachedBodyRequestWrapper.java b/src/main/java/io/company/localhost/common/wrapper/CachedBodyRequestWrapper.java index 8fafbeb..eb654a7 100644 --- a/src/main/java/io/company/localhost/common/wrapper/CachedBodyRequestWrapper.java +++ b/src/main/java/io/company/localhost/common/wrapper/CachedBodyRequestWrapper.java @@ -1,21 +1,6 @@ package io.company.localhost.common.wrapper; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -import org.springframework.util.StreamUtils; -import org.springframework.util.StringUtils; - import com.fasterxml.jackson.core.type.TypeReference; - import io.company.localhost.utils.JacksonUtil; import io.netty.handler.codec.ValueConverter; import jakarta.servlet.ReadListener; @@ -23,6 +8,15 @@ import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequestWrapper; import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StreamUtils; +import org.springframework.util.StringUtils; + +import java.io.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; +import java.util.Objects; // body 읽어서 cash로 만듬 // 필요하면 filter로 사용 @@ -39,7 +33,7 @@ public class CachedBodyRequestWrapper extends HttpServletRequestWrapper { super(request); String characterEncoding = request.getCharacterEncoding(); - if (StringUtils.hasText(characterEncoding) == false) { + if (!StringUtils.hasText(characterEncoding)) { characterEncoding = StandardCharsets.UTF_8.name(); } @@ -63,7 +57,7 @@ public class CachedBodyRequestWrapper extends HttpServletRequestWrapper { return; } - Object bodyObject = null; + Object bodyObject; if (requestBody.startsWith("[")) { // List bodyObject = JacksonUtil.fromJson(requestBody, new TypeReference>>() { }); @@ -94,9 +88,9 @@ public class CachedBodyRequestWrapper extends HttpServletRequestWrapper { /** json body 관련 메소드 END */ - private class CachedBodyServletInputStream extends ServletInputStream { + private static class CachedBodyServletInputStream extends ServletInputStream { - private InputStream cachedBodyInputStream; + private final InputStream cachedBodyInputStream; public CachedBodyServletInputStream(byte[] cachedBody) { this.cachedBodyInputStream = new ByteArrayInputStream(cachedBody); diff --git a/src/main/java/io/company/localhost/common/wrapper/RequestMappingWrapper.java b/src/main/java/io/company/localhost/common/wrapper/RequestMappingWrapper.java index a4b580f..1d25c73 100644 --- a/src/main/java/io/company/localhost/common/wrapper/RequestMappingWrapper.java +++ b/src/main/java/io/company/localhost/common/wrapper/RequestMappingWrapper.java @@ -1,8 +1,7 @@ package io.company.localhost.common.wrapper; -import java.lang.annotation.Annotation; -import java.util.Objects; - +import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; @@ -10,8 +9,8 @@ import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerExecutionChain; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import jakarta.servlet.http.HttpServletRequest; -import lombok.extern.slf4j.Slf4j; +import java.lang.annotation.Annotation; +import java.util.Objects; //특정 어노테이션이 있는지 확인하는용 @ReqMap 확인용 @@ -46,7 +45,7 @@ public class RequestMappingWrapper { if (Objects.nonNull(chain)) { Object handler = chain.getHandler(); - if (Objects.nonNull(handler) && handler instanceof HandlerMethod) { + if (handler instanceof HandlerMethod) { HandlerMethod handlerMethod = (HandlerMethod) chain.getHandler(); // Annotation methodAnnotation = // handlerMethod.getMethodAnnotation(annotationType); @@ -94,7 +93,7 @@ public class RequestMappingWrapper { if (Objects.nonNull(chain)) { Object handler = chain.getHandler(); - if (Objects.nonNull(handler) && handler instanceof HandlerMethod) { + if (handler instanceof HandlerMethod) { HandlerMethod handlerMethod = (HandlerMethod) chain.getHandler(); // for(Class anno : annotationTypes) { // A methodAnnotation = handlerMethod.getMethodAnnotation(anno); diff --git a/src/main/java/io/company/localhost/utils/JacksonUtil.java b/src/main/java/io/company/localhost/utils/JacksonUtil.java index 55223f7..b3a658c 100644 --- a/src/main/java/io/company/localhost/utils/JacksonUtil.java +++ b/src/main/java/io/company/localhost/utils/JacksonUtil.java @@ -1,5 +1,17 @@ package io.company.localhost.utils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.CollectionType; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import io.company.localhost.common.config.JacksonCommonConfig; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.ClassPathResource; +import org.springframework.util.ResourceUtils; +import org.springframework.util.StringUtils; + import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -8,20 +20,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import org.springframework.core.io.ClassPathResource; -import org.springframework.util.ResourceUtils; -import org.springframework.util.StringUtils; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.type.CollectionType; -import com.fasterxml.jackson.dataformat.xml.XmlMapper; - -import io.company.localhost.common.config.JacksonCommonConfig; -import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; - //json 변환 유틸 @Slf4j @UtilityClass @@ -70,7 +68,7 @@ public class JacksonUtil { * @return T */ public static T fromJson(String jsonString, Class targetType) { - if (StringUtils.hasText(jsonString) == false) { + if (!StringUtils.hasText(jsonString)) { return null; } @@ -93,7 +91,7 @@ public class JacksonUtil { * @return T */ public static T fromJson(String jsonString, TypeReference targetType) { - if (StringUtils.hasText(jsonString) == false) { + if (!StringUtils.hasText(jsonString)) { return null; } @@ -116,7 +114,7 @@ public class JacksonUtil { * @return List */ public static List listFromJson(String jsonString, Class targetType) { - if (StringUtils.hasText(jsonString) == false) { + if (!StringUtils.hasText(jsonString)) { return Collections.emptyList(); } @@ -136,7 +134,7 @@ public class JacksonUtil { @SuppressWarnings("unchecked") public static T xmlToJsonByJackson(String filePath) { - if (StringUtils.hasText(filePath) == false) { + if (!StringUtils.hasText(filePath)) { return null; } diff --git a/src/main/java/io/company/localhost/utils/WebUtil.java b/src/main/java/io/company/localhost/utils/WebUtil.java index c7de030..8abc654 100644 --- a/src/main/java/io/company/localhost/utils/WebUtil.java +++ b/src/main/java/io/company/localhost/utils/WebUtil.java @@ -1,9 +1,10 @@ package io.company.localhost.utils; -import java.lang.annotation.Annotation; -import java.util.Map; -import java.util.Objects; - +import io.company.localhost.common.webEnum.WebEnum; +import io.company.localhost.common.wrapper.RequestMappingWrapper; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.context.request.RequestContextHolder; @@ -11,11 +12,9 @@ import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerMapping; -import io.company.localhost.common.wrapper.RequestMappingWrapper; -import io.company.localhost.common.webEnum.WebEnum; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; +import java.lang.annotation.Annotation; +import java.util.Map; +import java.util.Objects; //web 요청에 대한 정보얻을 때 사용 @@ -33,7 +32,7 @@ public class WebUtil { * @return HttpServletRequest */ public static HttpServletRequest getRequest() { - return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); } /** @@ -42,7 +41,7 @@ public class WebUtil { * @return HttpServletResponse */ public static HttpServletResponse getResponse() { - return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); + return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getResponse(); } /** @@ -92,12 +91,14 @@ public class WebUtil { public static T getAnnotation(HttpServletRequest request, Class annotationType) { RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class); + assert wrapper != null; return wrapper.getAnnotation(request, annotationType); } public static T getAnnotation(HandlerMethod handlerMethod, Class annotationType) { RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class); + assert wrapper != null; return wrapper.getAnnotation(handlerMethod, annotationType); } @@ -113,6 +114,7 @@ public class WebUtil { Class... annotationTypes) { RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class); + assert wrapper != null; return wrapper.hasAnyAnnotation(request, annotationTypes); } @@ -121,6 +123,7 @@ public class WebUtil { Class... annotationTypes) { RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class); + assert wrapper != null; return wrapper.hasAnyAnnotation(handlerMethod, annotationTypes); } diff --git a/src/main/java/io/company/localhost/vo/MemberVo.java b/src/main/java/io/company/localhost/vo/MemberVo.java index f09315b..c85d16c 100644 --- a/src/main/java/io/company/localhost/vo/MemberVo.java +++ b/src/main/java/io/company/localhost/vo/MemberVo.java @@ -1,18 +1,9 @@ package io.company.localhost.vo; +import lombok.*; + import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - @Getter @Setter @Builder diff --git a/src/main/resources/datasource.yml b/src/main/resources/datasource.yml index 3c3dde6..07aee5a 100644 --- a/src/main/resources/datasource.yml +++ b/src/main/resources/datasource.yml @@ -4,11 +4,4 @@ datasource: jdbc-url: jdbc:log4jdbc:mariadb://192.168.0.251:3306/test username: root password: host1234 - hikari: - maximum-pool-size: 1 - minimum-idle: 1 - connection-timeout: 30000 - validation-timeout: 5000 - max-lifetime: 1800000 - idle-timeout: 600000