Springboot 내장된 유용한 Utils

Assert

// 필수 매개 변수 object는 비어 있지 않아야 합니다(Not Null). 그렇지 않으면 예외를 던지고 내보내지지 않습니다.
// 매개 변수 message 매개 변수는 예외 정보를 사용자 지정하는 데 사용됩니다.
void notNull(Object object, String message)
// 필수 매개변수는 비어 있어야 하며(Null), 그렇지 않으면 이상을 던지고 '반출'되지 않습니다.
// notNull() 메서드 주장 규칙과 반대입니다
void isNull(Object object, String message)
// 필수 매개변수는 참(True)이어야 하며, 그렇지 않으면 이상을 던지고 '반출'되지 않습니다.
void isTrue(boolean expression, String message)
// 요구 파라미터(List/Set)는 비어 있지 않아야 하며(Not Empty), 그렇지 않으면 이상을 던지면 릴리스되지 않습니다.
void notEmpty(Collection collection, String message)
// 요구 파라미터(String)는 반드시 길이(즉, Not Empty)가 있어야 하며, 그렇지 않으면 이상을 던지면 방출되지 않습니다.
void hasLength(String text, String message)
// 요구 파라미터(String)에는 반드시 내용(즉, Not Blank)이 있어야 하며, 그렇지 않으면 이상을 던지면 반출되지 않습니다.
void hasText(String text, String message)
// 요구 파라미터는 지정된 유형의 실례입니다. 그렇지 않으면 이상을 던지면, 풀어주지 않습니다.
void isInstanceOf(Class type, Object obj, String message)
// 요구 파라미터 `subType`은 반드시 파라미터 superType의 서브클래스 또는 구현클래스여야 하며, 그렇지 않으면 이상을 던질 경우 릴리스되지 않습니다.
void isAssignable(Class superType, Class subType, String message)

ObjectUtils

객체기본정보 가져오기 유틸

// 개체의 클래스 이름을 가져옵니다.인자가 null일 때 문자열을 반환합니다: "null"
String nullSafeClassName(Object obj)
// 인자가 null일 때 0을 반환합니다
int nullSafeHashCode(Object object)
// 인자가 null일 때 문자열을 반환합니다: "null"
String nullSafeToString(boolean[] array)
// 대상 HashCode (16진수 문자열) 을 가져옵니다.인자가 null일 때 0을 반환합니다
String getIdentityHexString(Object obj)
// 개체의 클래스 이름과 HashCode를 가져옵니다. 인자가 null일 때 문자열을 반환합니다:"
String identityToString(Object obj)
// toString() 메서드에 해당하지만 인자가 null일 경우 문자열을 반환합니다:"
String getDisplayString(Object obj)

판단유틸

// 배열이 비어 있는지 여부를 판단합니다
boolean isEmpty(Object[] array)
// 매개 변수 개체가 배열인지 여부 판단
boolean isArray(Object obj)
// 배열에 지정된 요소가 포함되어 있는지 확인합니다.
boolean containsElement(Object[] array, Object element)
// 같거나 같은 null일 때 true 반환
boolean nullSafeEquals(Object o1, Object o2)
/*
매개 변수 개체가 비어 있는지 여부를 판단하며 판단 기준은 다음과 같습니다.
    Optional: Optional.empty()
       Array: length == 0
CharSequence: length == 0
  Collection: Collection.isEmpty()
         Map: Map.isEmpty()
 */
boolean isEmpty(Object obj)

기타 유틸

// 매개 변수 배열의 끝에 새 요소를 추가하고 새 배열로 되돌립니다
<A, O extends A> A[] addObjectToArray(A[] array, O obj)
// 기본 유형 배열 --> 패키지 유형 배열
Object[] toObjectArray(Object source)

StringUtils

String 판단유틸

// 문자열이 null인지, 또는 ""인지 여부를 판단합니다.공백 문자를 포함하는 문자열은 비어 있지 않습니다
boolean isEmpty(Object str)
// 문자열이 지정된 내용으로 끝나는지 여부를 판단합니다.대소문자 무시
boolean endsWithIgnoreCase(String str, String suffix)
// 문자열이 내용의 시작 부분을 지정했는지 여부를 판단합니다.대소문자 무시
boolean startsWithIgnoreCase(String str, String prefix) 
// 공백 문자를 포함할지 여부
boolean containsWhitespace(String str)
// 문자열이 비어 있지 않고 길이가 0이 아니라고 판단합니다. 즉, Not Empty
boolean hasLength(CharSequence str)
// 문자열에 실제 내용이 포함되어 있는지 여부, 즉 공백 문자만 포함하는 것이 아니라 Not Blank
boolean hasText(CharSequence str)
// 문자열 지정 인덱스에 하위 문자열이 포함되어 있는지 여부를 판단합니다.
boolean substringMatch(CharSequence str, int index, CharSequence substring)
// 문자열에서 지정한 부분 문자열의 수를 세십시오
int countOccurrencesOf(String str, String sub)

String 제어 유틸

// 지정문자를 찾고 치환
String replace(String inString, String oldPattern, String newPattern)
// 끝부분 특수문자제거
String trimTrailingCharacter(String str, char trailingCharacter) 
// 시작부분 특수문자제거
String trimLeadingCharacter(String str, char leadingCharacter)
// 시작 공백제거
String trimLeadingWhitespace(String str)
// 시작 공백제거
String trimTrailingWhitespace(String str)
// 시작,끝 공백 제거 
String trimWhitespace(String str)
// 시작,끝,가운데 공백 제거
String trimAllWhitespace(String str)
// 지정 문자열 제거
String delete(String inString, String pattern)
// 지정 부호 제거(여러개 가능)
String deleteAny(String inString, String charsToDelete)
// 배열각아이템마다 trim() 메소드 실행
String[] trimArrayElements(String[] array)
//  URL String 에 대한 디코딩
String uriDecode(String source, Charset charset)

경로string 관련제어

// 경로 문자열을 해석하고 "..." 을 최적화합니다.
String cleanPath(String path)
// 경로 문자열을 해석하여 파일 이름 부분을 해석합니다.
String getFilename(String path)
// 경로 문자열을 해석하고, 파일 접미사 이름을 해석합니다.
String getFilenameExtension(String path)
// 두 개의 두 개의 문자열을 비교하여 동일한 경로인지 여부를 판단합니다.경로의 "..." 을 자동으로 처리합니다.
boolean pathEquals(String path1, String path2)
// 파일 경로 이름에서 접미사 부분 삭제
String stripFilenameExtension(String path)
// ".를 구분자로 사용하여 마지막 부분을 가져옵니다.
String unqualify(String qualifiedName)
// 지정한 문자를 구분자로 사용하여 마지막 부분 가져오기
String unqualify(String qualifiedName, char separator)

CollectionUtils

컬랙션 판단

// List/Set이 비어 있는지 여부 판단
boolean isEmpty(Collection<?> collection)
// Map이 비어 있는지 여부 판단
boolean isEmpty(Map<?,?> map)
// List/Set에 개체 포함 여부 판단
boolean containsInstance(Collection<?> collection, Object element)
// 반복기 방식으로 List/Set에 개체가 포함되는지 여부를 판단합니다
boolean contains(Iterator<?> iterator, Object element)
// List/Set에 어떤 개체가 포함되어 있는지 판단하기
boolean containsAny(Collection<?> source, Collection<?> candidates)
// List/Set의 각 요소가 고유한지 여부를 판단합니다.List/Set에 중복 요소가 없습니다
boolean hasUniqueObject(Collection<?> collection)

컬랙션 제어

// Array의 요소를 List/Set에 추가합니다.
<E> void mergeArrayIntoCollection(Object array, Collection<E> collection)  
// Properties의 키 쌍을 Map에 추가합니다.
<K,V> void mergePropertiesIntoMap(Properties props, Map<K,V> map)
// List의 마지막 요소로 돌아가기
<T> T lastElement(List<T> list)  
// Set의 마지막 요소로 돌아가기
<T> T lastElement(Set<T> set) 
// 매개 변수 candidates에서 매개 변수 source의 첫 번째 요소를 반환합니다.
<E> E findFirstMatch(Collection<?> source, Collection<E> candidates)
// List/Set에서 지정한 형식의 요소를 반환합니다.
<T> T findValueOfType(Collection<?> collection, Class<T> type)
// List/Set에서 지정한 형식의 요소를 반환합니다.첫 번째 유형을 찾지 못하면 두 번째 유형을 찾아 유추한다
Object findValueOfType(Collection<?> collection, Class<?>[] types)
// List/Set의 요소 형식을 반환합니다.
Class<?> findCommonElementType(Collectio<?> collection)

file、resource、IO Stream

FileCopyUtils

input

// 파일에서 바이트 배열로 읽기
byte[] copyToByteArray(File in)
// 입력 스트림에서 바이트 배열로 읽기
byte[] copyToByteArray(InputStream in)
// 입력 스트림에서 문자열로 읽기
String copyToString(Reader in)

output

// 바이트 배열에서 파일로
void copy(byte[] in, File out)
// 파일에서 파일로
int copy(File in, File out)
// 바이트 배열에서 출력 스트림으로
void copy(byte[] in, OutputStream out) 
// 입력 흐름에서 출력 흐름으로
int copy(InputStream in, OutputStream out) 
// 입력 흐름에서 출력 흐름으로
int copy(Reader in, Writer out)
// 문자열에서 출력 스트림으로
void copy(String in, Writer out)

ResourceUtils

자원 경로에서 파일 가져오기

// 문자열이 합법적인 URL 문자열인지 여부를 판단합니다.
static boolean isUrl(String resourceLocation)
// URL 가져오기
static URL getURL(String resourceLocation) 
// 파일 가져오기 (JAR 패키지에서 제대로 사용할 수 없습니다. 별도의 파일이 필요합니다)
static File getFile(String resourceLocation)

Resource

// 파일 시스템 리소스 D:\...
FileSystemResource
// file: //... http://... 같은 URL 리소스
UrlResource
// 클래스 경로 아래의 리소스, classspth:...
ClassPathResource
// 웹 컨테이너 컨텍스트의 리소스 (jar 패키지, war 패키지)
ServletContextResource
// 자원의 존재 여부를 판단하다
boolean exists()
// 리소스에서 File 개체 가져오기
File getFile()
// 리소스에서 URI 개체 가져오기
URI getURI()
// 리소스에서 URI 개체 가져오기
URL getURL()
// 리소스 가져오기InputStream
InputStream getInputStream()
// 리소스에 대한 설명 정보 가져오기
String getDescription()

StreamUtils

input

void copy(byte[] in, OutputStream out)
int copy(InputStream in, OutputStream out)
void copy(String in, Charset charset, OutputStream out)
long copyRange(InputStream in, OutputStream out, long start, long end)

output

byte[] copyToByteArray(InputStream in)
String copyToString(InputStream in, Charset charset)
// 입력 흐름에서 내용 지우기
int drain(InputStream in)

Reflection , AOP

ReflectionUtils

정보 가져오기 메서드

// 클래스에서 지정한 메서드 찾기
Method findMethod(Class<?> clazz, String name) 
// 위와 같이, 검색 조건에 방법 매개 변수 유형을 추가로 제공합니다.
Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes) 
// 상속을 포함하여 클래스의 모든 메서드 가져오기
Method[] getAllDeclaredMethods(Class<?> leafClass) 
// 클래스에서 지정한 생성 방법 찾기
Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>... parameterTypes) 
// equals() 메서드인지 여부
boolean isEqualsMethod(Method method) 
// hashCode() 메서드인지 여부
boolean isHashCodeMethod(Method method) 
// toString() 메서드인지 여부
boolean isToStringMethod(Method method) 
// Object 클래스에서 상속되는 방법인지 여부
boolean isObjectMethod(Method method) 
// 메서드가 지정한 예외를 선언하는지 확인합니다
boolean declaresException(Method method, Class<?> exceptionType)

수행메서드

// 실행 방법
Object invokeMethod(Method method, Object target)  
// 위와 같이, 방법 파라미터를 제공한다.
Object invokeMethod(Method method, Object target, Object... args) 
// 자바 권한 검사를 취소합니다.이 개인 메서드를 나중에 실행할 수 있도록 하기 위해
void makeAccessible(Method method) 
// 자바 권한 검사를 취소합니다.나중에 사유 구축 방법을 실행할 수 있도록 하기 위해서
void makeAccessible(Constructor<?> ctor)

field 정보가져오기

// 클래스에서 지정한 속성 찾기
Field findField(Class<?> clazz, String name) 
// 위와 같이 속성의 유형을 많이 제공하였다.
Field findField(Class<?> clazz, String name, Class<?> type) 
// "public static final" 속성인지 여부
boolean isPublicStaticFinal(Field field)

설정 메서드

// target 개체의 필드 속성 값을 가져옵니다.
Object getField(Field field, Object target) 
// target 개체의 필드 속성 값을 value로 설정합니다
void setField(Field field, Object target, Object value) 
// 동종 개체 속성 대등 할당
void shallowCopyFieldState(Object src, Object dest)
// Java의 권한 제어 검사를 취소합니다.개인 속성을 읽고 쓸 수 있도록 하기
void makeAccessible(Field field) 
// 클래스의 각 속성에 대해 callback 실행
void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc) 
// 위와 같이 속성 필터링 기능이 추가되었습니다.
void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc, 
                  ReflectionUtils.FieldFilter ff) 
// 위와 같으나 상속받은 속성은 포함하지 않는다
void doWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)

AopUtils

proxy 판단

// Spring 에이전트인지 여부 판단
boolean isAopProxy()
// jdk 동적 에이전트인지 여부 판단
isJdkDynamicProxy()
// CGLIB 에이전트인지 여부 판단
boolean isCglibProxy()

proxy target class

// proxy 대상 클래스 가져오기
Class<?> getTargetClass()

AopContext

현재 proxy 객체 가져오기

Object currentProxy()

끝!

Last updated