断言
SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 void notNull (Object object, String message) void isNull (Object object, String message) void isTrue (boolean expression, String message) void notEmpty (Collection collection, String message) void hasLength (String text, String message) void hasText (String text, String message) void isInstanceOf (Class type, Object obj, String message) void isAssignable (Class superType, Class subType, String message)
对象、数组、集合
ObjectUtils
获取对象的基本信息
1 2 3 4 5 6 7 8 9 10 11 12 13 String nullSafeClassName (Object obj) int nullSafeHashCode (Object object) String nullSafeToString (boolean [] array) String getIdentityHexString (Object obj) String identityToString (Object obj) String getDisplayString (Object obj)
判断工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 boolean isEmpty (Object[] array) boolean isArray (Object obj) boolean containsElement (Object[] array, Object element) boolean nullSafeEquals (Object o1, Object o2) boolean isEmpty (Object obj)
其他工具方法
1 2 3 4 5 <A, O extends A> A[] addObjectToArray(A[] array, O obj) Object[] toObjectArray(Object source)
StringUtils
字符串判断工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 boolean isEmpty (Object str) boolean endsWithIgnoreCase (String str, String suffix) boolean startsWithIgnoreCase (String str, String prefix) boolean containsWhitespace (String str) boolean hasLength (CharSequence str) boolean hasText (CharSequence str) boolean substringMatch (CharSequence str, int index, CharSequence substring) int countOccurrencesOf (String str, String sub)
字符串操作工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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) String[] trimArrayElements (String[] array) String uriDecode (String source, Charset charset)
路径相关工具方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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
集合判断工具
1 2 3 4 5 6 7 8 9 10 11 12 13 boolean isEmpty (Collection<?> collection) boolean isEmpty (Map<?,?> map) boolean containsInstance (Collection<?> collection, Object element) boolean contains (Iterator<?> iterator, Object element) boolean containsAny (Collection<?> source, Collection<?> candidates) boolean hasUniqueObject (Collection<?> collection)
集合操作工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <E> void mergeArrayIntoCollection (Object array, Collection<E> collection) <K,V> void mergePropertiesIntoMap (Properties props, Map<K,V> map) <T> T lastElement (List<T> list) <T> T lastElement (Set<T> set) <E> E findFirstMatch (Collection<?> source, Collection<E> candidates) <T> T findValueOfType (Collection<?> collection, Class<T> type) Object findValueOfType (Collection<?> collection, Class<?>[] types) Class<?> findCommonElementType (Collection<?> collection)
文件、资源、IO 流
FileCopyUtils
输入
1 2 3 4 5 6 byte [] copyToByteArray(File in)byte [] copyToByteArray(InputStream in)String copyToString (Reader in)
输出
1 2 3 4 5 6 7 8 9 10 11 12 13 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
从资源路径获取文件
1 2 3 4 5 6 7 static boolean isUrl (String resourceLocation) static URL getURL (String resourceLocation) static File getFile (String resourceLocation)
Resource
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 FileSystemResource UrlResource ClassPathResource ServletContextResource boolean exists () File getFile () URI getURI () URL getURL () InputStream getInputStream () String getDescription ()
StreamUtils
输入
1 2 3 4 5 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)
输出
1 2 3 4 5 byte [] copyToByteArray(InputStream in)String copyToString (InputStream in, Charset charset) int drain (InputStream in)
反射、AOP
ReflectionUtils
获取方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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) boolean isEqualsMethod (Method method) boolean isHashCodeMethod (Method method) boolean isToStringMethod (Method method) boolean isObjectMethod (Method method) boolean declaresException (Method method, Class<?> exceptionType)
执行方法
1 2 3 4 5 6 7 8 9 Object invokeMethod (Method method, Object target) Object invokeMethod (Method method, Object target, Object... args) void makeAccessible (Method method) void makeAccessible (Constructor<?> ctor)
获取字段
1 2 3 4 5 6 7 Field findField (Class<?> clazz, String name) Field findField (Class<?> clazz, String name, Class<?> type) boolean isPublicStaticFinal (Field field)
设置字段
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Object getField (Field field, Object target) void setField (Field field, Object target, Object value) void shallowCopyFieldState (Object src, Object dest) void makeAccessible (Field field) 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
判断代理类型
1 2 3 4 5 6 7 boolean isAopProxy () isJdkDynamicProxy () boolean isCglibProxy ()
获取被代理对象的 class
1 2 3 Class<?> getTargetClass()
AopContext
获取当前对象的代理对象
来源:掘金@CadeCode
CommandLineRunner
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @SpringBootApplication public class JavaAboutApplication { public static void main (String[] args) { SpringApplication.run(JavaAboutApplication.class, args); } @Bean CommandLineRunner lookupTestService (TestService testService) { return args -> { testService.test(); }; } }
pringBoot启动后,自动加载了service的执行程序。
CommandLineRunner
是一个接口,用于在Spring Boot应用程序启动后执行一些特定的任务或代码块。当应用程序启动完成后,Spring Boot会查找并执行实现了CommandLineRunner
接口的Bean。
说白了,就是SpringBoot启动后,我立马想干的事,都可以往里写。
本地测试用,生产环境不会保留。