import 정리

This commit is contained in:
ckx6954 2024-12-09 13:10:44 +09:00
parent fb2cf3ff00
commit 7cb22f5464
10 changed files with 76 additions and 102 deletions

View File

@ -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

View File

@ -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();
//스네이크 케이스 자동 카멜 케이스로 매핑

View File

@ -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() {

View File

@ -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);

View File

@ -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<List<Map<String, Object>>>() {
});
@ -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);

View File

@ -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<A> anno : annotationTypes) {
// A methodAnnotation = handlerMethod.getMethodAnnotation(anno);

View File

@ -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> T fromJson(String jsonString, Class<T> targetType) {
if (StringUtils.hasText(jsonString) == false) {
if (!StringUtils.hasText(jsonString)) {
return null;
}
@ -93,7 +91,7 @@ public class JacksonUtil {
* @return T
*/
public static <T> T fromJson(String jsonString, TypeReference<T> targetType) {
if (StringUtils.hasText(jsonString) == false) {
if (!StringUtils.hasText(jsonString)) {
return null;
}
@ -116,7 +114,7 @@ public class JacksonUtil {
* @return List<T>
*/
public static <E> List<E> listFromJson(String jsonString, Class<E> 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> T xmlToJsonByJackson(String filePath) {
if (StringUtils.hasText(filePath) == false) {
if (!StringUtils.hasText(filePath)) {
return null;
}

View File

@ -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> T getAnnotation(HttpServletRequest request, Class<? extends Annotation> annotationType) {
RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class);
assert wrapper != null;
return wrapper.getAnnotation(request, annotationType);
}
public static <T> T getAnnotation(HandlerMethod handlerMethod, Class<? extends Annotation> annotationType) {
RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class);
assert wrapper != null;
return wrapper.getAnnotation(handlerMethod, annotationType);
}
@ -113,6 +114,7 @@ public class WebUtil {
Class<A>... annotationTypes) {
RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class);
assert wrapper != null;
return wrapper.hasAnyAnnotation(request, annotationTypes);
}
@ -121,6 +123,7 @@ public class WebUtil {
Class<A>... annotationTypes) {
RequestMappingWrapper wrapper = ContextUtil.getBean(RequestMappingWrapper.class);
assert wrapper != null;
return wrapper.hasAnyAnnotation(handlerMethod, annotationTypes);
}

View File

@ -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

View File

@ -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