mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	Merge branch 'master-jdk21' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into develop
# Conflicts: # yudao-dependencies/pom.xml # yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java # yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
This commit is contained in:
		@@ -1,46 +0,0 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.common.util.spring;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import org.springframework.aop.framework.AdvisedSupport;
 | 
			
		||||
import org.springframework.aop.framework.AopProxy;
 | 
			
		||||
import org.springframework.aop.support.AopUtils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Spring AOP 工具类
 | 
			
		||||
 *
 | 
			
		||||
 * 参考波克尔 http://www.bubuko.com/infodetail-3471885.html 实现
 | 
			
		||||
 */
 | 
			
		||||
public class SpringAopUtils {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取代理的目标对象
 | 
			
		||||
     *
 | 
			
		||||
     * @param proxy 代理对象
 | 
			
		||||
     * @return 目标对象
 | 
			
		||||
     */
 | 
			
		||||
    public static Object getTarget(Object proxy) throws Exception {
 | 
			
		||||
        // 不是代理对象
 | 
			
		||||
        if (!AopUtils.isAopProxy(proxy)) {
 | 
			
		||||
            return proxy;
 | 
			
		||||
        }
 | 
			
		||||
        // Jdk 代理
 | 
			
		||||
        if (AopUtils.isJdkDynamicProxy(proxy)) {
 | 
			
		||||
            return getJdkDynamicProxyTargetObject(proxy);
 | 
			
		||||
        }
 | 
			
		||||
        // Cglib 代理
 | 
			
		||||
        return getCglibProxyTargetObject(proxy);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static Object getCglibProxyTargetObject(Object proxy) throws Exception {
 | 
			
		||||
        Object dynamicAdvisedInterceptor = BeanUtil.getFieldValue(proxy, "CGLIB$CALLBACK_0");
 | 
			
		||||
        AdvisedSupport advisedSupport = (AdvisedSupport) BeanUtil.getFieldValue(dynamicAdvisedInterceptor, "advised");
 | 
			
		||||
        return advisedSupport.getTargetSource().getTarget();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static Object getJdkDynamicProxyTargetObject(Object proxy) throws Exception {
 | 
			
		||||
        AopProxy aopProxy = (AopProxy) BeanUtil.getFieldValue(proxy, "h");
 | 
			
		||||
        AdvisedSupport advisedSupport = (AdvisedSupport) BeanUtil.getFieldValue(aopProxy, "advised");
 | 
			
		||||
        return advisedSupport.getTargetSource().getTarget();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,24 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.common.util.spring;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.extra.spring.SpringUtil;
 | 
			
		||||
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Spring 工具类
 | 
			
		||||
 *
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
public class SpringUtils extends SpringUtil {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 是否为生产环境
 | 
			
		||||
     *
 | 
			
		||||
     * @return 是否生产环境
 | 
			
		||||
     */
 | 
			
		||||
    public static boolean isProd() {
 | 
			
		||||
        String activeProfile = getActiveProfile();
 | 
			
		||||
        return Objects.equals("prod", activeProfile);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user