update 升级 hutool 5.7.1 适配工具类
This commit is contained in:
parent
feb7c85d57
commit
7bdce848e7
2
pom.xml
2
pom.xml
|
@ -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>
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue