springBoot实现反射机制

本文介绍了在SpringBoot项目中如何通过反射机制正确地获取并实例化对象。原本使用Class.forName().newInstance()的方式存在问题,因为对象未被Spring容器管理。通过改进,现利用Spring管理组件,确保能调用到实现类的所有方法。
摘要由CSDN通过智能技术生成

获取CLASS实现类对象

根据class实现类的包名路径来获取实例化对象

 //首先定义一个实现类路径
 String a ="com.bnwisdom.demo.service.impl.ActivitiDeployServiceImpl";
 //根据该路径获取class对象
 Class  aClass = Class.forName(confById.getImplClass());

之前是直接通过Class.forName(confById.getImplClass()).newInstance();来获取对象的,但是实际上是有问题的,因为我的项目是springBoot项目,没有放到容器去管理,所以修改成了另外的一个操作,让spring去管理它

//把这个class丢到spring去管理
activitiDeployService = (ActivitiDeployService) SpringContextUtil.getBean(aClass);

package com.bnwisdom;

import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

/**
 *  *  获取spring容器,以访问容器中定义的其他bean  
 */

@Component
public class SpringContextUtil {
	// spring上下文
	private static ApplicationContext applicationContext;

	/**
	 *      * 实现ApplicationContextAware接口的回调方法,设置上下文环境      * @param
	 * applicationContext     
	 */
	public sta
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值