栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

项目启动初始化加载配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

项目启动初始化加载配置

主要利用initializingbean对象和scheduledexecutor线程池,来实现统一封装的;

线程池

1,可重新弄加载初始化bean对象 接口类配置
public interface IReloadConfig{
        //重新加载api
        void reload();
    }

2.抽象的公共方法,可项目启动初始化加载bean,也可手动触发时间,决定某一个bean对象进行重新加载配置
public absract class AbstractReloadConfig implements IReloadConfig,InitializingBean,DisposableBean{

    //更新执行器
    private Runnable runnable;//起线程执行
    //定义线程池,1个线程池,无界队列,
    private ScheduledExecutorService service;//service.submit可对当前bean对象重新加载配置

    @Override
    public final void afterPropertiesSet() throws Exception{
        
        service = Executors.newSingleThreadScheduledExecutor();//定义线程池
         
        this.runnable = createRunnable();//公共方法,不同bean对象初始化操作
        this.runnable,run();
    }

        
    @Override
    public final void destroy()  throw Exception{
        if(service != null){
            service.shutdoen();//bean对象在项目停止的时候,销毁对象的同事,杀掉调度
        }
    }

    @Override
    public final void reload(){
        try{
            service.submit(this.runnable);//重新加载某对象时,会使用改方法,重新初始化bean对象
        }catch(Exception e){
        
        }
    }

    //抽取公共方法,方便初始化加载
    protected abstract Runnable createRunnable();
}


3.样例,初始化某一bead对象,例如获取数据字典配置
@Service("ConfigUpdateTime")
public class commConfig extend AbstractReloadCOnfig{
    
    //定义接收对象
    private Map commfig;
    
    @Overrid
    protected Runnable createRunnable(){
            return () -> {
                logger.info();
                    //组装数据结构,commfig;
                 logger.info("结束");
            };
        }

    //该bean对象,初始化加载完数据之后,可针对获取的数据,抽取公共方法,例如转账参数,1 -> 2
    public Sting transform()String source{
        //略
    }
}






转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号