主頁(yè) > 知識(shí)庫(kù) > spring動(dòng)態(tài)bean注冊(cè)示例分享

spring動(dòng)態(tài)bean注冊(cè)示例分享

熱門(mén)標(biāo)簽:電銷機(jī)器人是有一些什么技術(shù) 杭州ai語(yǔ)音電銷機(jī)器人功能 電銷機(jī)器人好賣么 四川保險(xiǎn)智能外呼系統(tǒng)商家 杭州語(yǔ)音電銷機(jī)器人軟件 商洛電銷 地圖標(biāo)注線上教程 高德地圖標(biāo)注樣式 北票市地圖標(biāo)注

1.在一些特殊的場(chǎng)景中需要?jiǎng)討B(tài)向spring注冊(cè)bean
2.spring版本2.5.6

復(fù)制代碼 代碼如下:

public class ServiceServiceImpl implements ServiceService, ApplicationContextAware {

 @Override
 public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
   throws BeansException {
  this.context = applicationContext;
 }

 public void addBeanService(Service service) throws BVSException {
  if (!context.containsBean(service.getServiceName())) {
   Class?> serviceClass = getServiceClass(service.getClassName());
   BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(serviceClass);
   beanDefinitionBuilder.addPropertyValue("servicename", service.getServiceName());
   registerBean(service.getServiceName(), beanDefinitionBuilder.getRawBeanDefinition());
  }

 }

 /**
  * @desc 向spring容器注冊(cè)bean
  * @param beanName
  * @param beanDefinition
  */
 private void registerBean(String beanName, BeanDefinition beanDefinition) {
  ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) context;
  BeanDefinitionRegistry beanDefinitonRegistry = (BeanDefinitionRegistry) configurableApplicationContext
    .getBeanFactory();
  beanDefinitonRegistry.registerBeanDefinition(beanName, beanDefinition);
 }

 /**
  * @desc 根據(jù)類名查找class
  * @param className
  * @return
  * @throws BVSException
  */
 private Class?> getServiceClass(String className) throws BVSException {
  try {
   return Thread.currentThread().getContextClassLoader().loadClass(className);
  } catch (ClassNotFoundException e) {
   log.error("not found service class:" + className, e);
   throw new BVSException("not found service class:" + className, e);
  }
 }
}

您可能感興趣的文章:
  • Spring Boot如何動(dòng)態(tài)創(chuàng)建Bean示例代碼
  • Spring中如何動(dòng)態(tài)注入Bean實(shí)例教程
  • JSP 開(kāi)發(fā)之Spring Boot 動(dòng)態(tài)創(chuàng)建Bean
  • 如何在Spring中使用編碼方式動(dòng)態(tài)配置Bean詳解

標(biāo)簽:丹東 紅河 宿州 貴州 云浮 青島 西藏 江西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《spring動(dòng)態(tài)bean注冊(cè)示例分享》,本文關(guān)鍵詞  spring,動(dòng)態(tài),bean,注冊(cè),示例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《spring動(dòng)態(tài)bean注冊(cè)示例分享》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于spring動(dòng)態(tài)bean注冊(cè)示例分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章