update 升级 hutool 5.7.1 适配工具类

This commit is contained in:
疯狂的狮子li 2021-06-16 15:36:45 +08:00
parent feb7c85d57
commit 7bdce848e7
3 changed files with 56 additions and 136 deletions

View File

@ -25,7 +25,7 @@
<velocity.version>1.7</velocity.version> <velocity.version>1.7</velocity.version>
<jwt.version>0.9.1</jwt.version> <jwt.version>0.9.1</jwt.version>
<mybatis-plus.version>3.4.3.1</mybatis-plus.version> <mybatis-plus.version>3.4.3.1</mybatis-plus.version>
<hutool.version>5.6.5</hutool.version> <hutool.version>5.7.1</hutool.version>
<feign.version>2.2.6.RELEASE</feign.version> <feign.version>2.2.6.RELEASE</feign.version>
<feign-okhttp.version>11.0</feign-okhttp.version> <feign-okhttp.version>11.0</feign-okhttp.version>
<spring-boot-admin.version>2.3.1</spring-boot-admin.version> <spring-boot-admin.version>2.3.1</spring-boot-admin.version>

View File

@ -4,6 +4,7 @@ import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.List;
/** /**
* 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数. * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.
@ -37,13 +38,13 @@ public class ReflectUtils extends ReflectUtil {
*/ */
public static <E> void invokeSetter(Object obj, String propertyName, E value) { public static <E> void invokeSetter(Object obj, String propertyName, E value) {
Object object = obj; Object object = obj;
String[] names = StrUtil.split(propertyName, "."); List<String> names = StrUtil.split(propertyName, ".");
for (int i = 0; i < names.length; i++) { for (int i = 0; i < names.size(); i++) {
if (i < names.length - 1) { if (i < names.size() - 1) {
String getterMethodName = GETTER_PREFIX + StrUtil.upperFirst(names[i]); String getterMethodName = GETTER_PREFIX + StrUtil.upperFirst(names.get(i));
object = invoke(object, getterMethodName); object = invoke(object, getterMethodName);
} else { } else {
String setterMethodName = SETTER_PREFIX + StrUtil.upperFirst(names[i]); String setterMethodName = SETTER_PREFIX + StrUtil.upperFirst(names.get(i));
Method method = getMethodByName(object.getClass(), setterMethodName); Method method = getMethodByName(object.getClass(), setterMethodName);
invoke(object, method, value); invoke(object, method, value);
} }

View File

@ -1,67 +1,17 @@
package com.ruoyi.common.utils.spring; package com.ruoyi.common.utils.spring;
import cn.hutool.core.lang.Validator; import cn.hutool.extra.spring.SpringUtil;
import org.springframework.aop.framework.AopContext; import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* spring工具类 方便在非spring管理环境中获取bean * spring工具类
* *
* @author ruoyi * @author Lion Li
*/ */
@Component @Component
public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware public final class SpringUtils extends SpringUtil {
{
/** Spring应用上下文环境 */
private static ConfigurableListableBeanFactory beanFactory;
private static ApplicationContext applicationContext;
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
{
SpringUtils.beanFactory = beanFactory;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
{
SpringUtils.applicationContext = applicationContext;
}
/**
* 获取对象
*
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws org.springframework.beans.BeansException
*
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException
{
return (T) beanFactory.getBean(name);
}
/**
* 获取类型为requiredType的对象
*
* @param clz
* @return
* @throws org.springframework.beans.BeansException
*
*/
public static <T> T getBean(Class<T> clz) throws BeansException
{
T result = (T) beanFactory.getBean(clz);
return result;
}
/** /**
* 如果BeanFactory包含一个与所给名称匹配的bean定义则返回true * 如果BeanFactory包含一个与所给名称匹配的bean定义则返回true
@ -69,46 +19,36 @@ public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationC
* @param name * @param name
* @return boolean * @return boolean
*/ */
public static boolean containsBean(String name) public static boolean containsBean(String name) {
{ return getBeanFactory().containsBean(name);
return beanFactory.containsBean(name);
} }
/** /**
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype 如果与给定名字相应的bean定义没有被找到将会抛出一个异常NoSuchBeanDefinitionException * 判断以给定名字注册的bean定义是一个singleton还是一个prototype
* 如果与给定名字相应的bean定义没有被找到将会抛出一个异常NoSuchBeanDefinitionException
* *
* @param name * @param name
* @return boolean * @return boolean
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/ */
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
{ return getBeanFactory().isSingleton(name);
return beanFactory.isSingleton(name);
} }
/** /**
* @param name * @param name
* @return Class 注册对象的类型 * @return Class 注册对象的类型
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/ */
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
{ return getBeanFactory().getType(name);
return beanFactory.getType(name);
} }
/** /**
* 如果给定的bean名字在bean定义中有别名则返回这些别名 * 如果给定的bean名字在bean定义中有别名则返回这些别名
* *
* @param name * @param name
* @return
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/ */
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
{ return getBeanFactory().getAliases(name);
return beanFactory.getAliases(name);
} }
/** /**
@ -118,29 +58,8 @@ public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationC
* @return * @return
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <T> T getAopProxy(T invoker) public static <T> T getAopProxy(T invoker) {
{
return (T) AopContext.currentProxy(); return (T) AopContext.currentProxy();
} }
/**
* 获取当前的环境配置无配置返回null
*
* @return 当前的环境配置
*/
public static String[] getActiveProfiles()
{
return applicationContext.getEnvironment().getActiveProfiles();
}
/**
* 获取当前的环境配置当有多个环境配置时只获取第一个
*
* @return 当前的环境配置
*/
public static String getActiveProfile()
{
final String[] activeProfiles = getActiveProfiles();
return Validator.isNotEmpty(activeProfiles) ? activeProfiles[0] : null;
}
} }