All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.biz.common.serviceloader.ApplicationContextAwareServiceLoaderImpl Maven / Gradle / Ivy

Go to download

BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。

The newest version!
package com.biz.common.serviceloader;

import com.biz.common.bean.BizXBeanUtils;
import com.biz.common.utils.Common;
import lombok.extern.slf4j.Slf4j;

/**
 * 实现了服务加载器的特定逻辑,利用Spring框架的ApplicationContext来加载服务。
 * 此实现类继承自{@link AbstractServiceLoaderProvider},提供了特定于应用程序上下文的服务加载机制。
 *
 * 

该类通过Spring的应用程序上下文来加载服务实例,使得服务的加载与Spring框架集成。 * 使用{@link BizXBeanUtils#getBean(Class)}方法获取指定类型的Bean实例。

* * @author francis * @since 1.0.1 * @version 1.0.1 */ @Slf4j public class ApplicationContextAwareServiceLoaderImpl extends AbstractServiceLoaderProvider { /** * 加载指定类别的服务实例。 * 本方法利用{@link BizXBeanUtils#getBean(Class)}方法从Spring应用程序上下文中获取指定类型的bean实例。 * 如果找不到对应的bean,将返回null。 * * @param tClass 服务的类别,用于从应用程序上下文中获取对应的bean。 * @param 服务的类型。 * @return 类别为tClass的bean实例,如果找不到则返回null。 */ @Override protected T load(Class tClass) { // 输入验证 if (tClass == null) { log.warn("The input class is null, return null instead."); return null; } try { // 尝试获取bean实例 Object bean = BizXBeanUtils.getBean(tClass); // 类型安全的转换 return Common.to(tClass.cast(bean)); } catch (ClassCastException e) { log.error("Failed to cast the bean to the expected type: {}", tClass.getName(), e); throw e; } catch (Exception e) { // 捕获其他潜在异常,例如NoSuchBeanDefinitionException log.error("Error loading bean for class: {}", tClass.getName(), e); throw e; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy