华网·两会|全国人大代表钟宝申:加强光伏工业自主立异与原创技能展开
时间:2025-03-05 02:25:39 出处:李小沛阅读(143)
因为SpringBean默许是单例的,华网会全并且会随同Spring容器长时间存活,就能够确保web容器耐久存活。
作者:两立异京东科技李君书接上文,两立异前面在Spring使用兼并之路(一):摸石头过河介绍了几种不成功的阅历,下面继续折腾…四、库房兼并,独立容器在阅历了上面的测验,在搭档为啥不搞两个独立的容器提示下,决议抛开SpringBoot内置的父子容器计划,彻底自己完成父子容器。可是,国人光伏工业调查日志,国人光伏工业会发现com.diguage.demo.boot.config.WebLoaderListener#onApplicationEvent办法被两次履行,也便是监听到了两次ContextRefreshedEvent事情,导致web容器会被加载两次。
if(this.parent!=null){if(this.parentinstanceofAbstractApplicationContextabstractApplicationContext){abstractApplicationContext.publishEvent(event,typeHint);}else{this.parent.publishEvent(event);}}}在publishEvent办法的最终,大代假如父容器不为null的情况下,大代则也会向父容器播送容器的相关事情。因为SpringBean默许是单例的,表钟宝申并且会随同Spring容器长时间存活,就能够确保web容器耐久存活。结合Spring扩展点概览及实践中介绍的Spring扩展点,加强有两个当地能够使用:加强1.能够使用ApplicationContextAware获取boot容器的ApplicationContext实例,这样就能够完成自己完成的父子容器
在获取到详细的库名后履行getRequiredSqlWithSpecificDBName办法来将其拼接到表名前,自主在这里咱们运用到了JSqlParser的东西类,自主解析出来一切的表名,履行字符串的替换,最终一步同样是运用反射操作将该参数值再写回去,这样便完成了指定库名的使命。接下来咱们需求看下笼统阻拦器中供阻拦器复用的办法,创技如下:创技publicabstractclassAbstractDBNameInterceptor{/***SqlSource字段称号*/privatestaticfinalStringSQL_SOURCE_FIELD_NAME=sqlSource;/***履行修正数据库名的逻辑*/protectedObjectupdateDBName(Invocationinvocation)throwsThrowable{//装修器装修SqlSourcedecorateSqlSource((MappedStatement)invocation.getArgs()[0]);returninvocation.proceed();}/***装修SqlSource*/privatevoiddecorateSqlSource(MappedStatementstatement)throwsNoSuchFieldException,IllegalAccessException{if(!(statement.getSqlSource()instanceofSqlSourceDecorator)){FieldsqlSource=statement.getClass().getDeclaredField(SQL_SOURCE_FIELD_NAME);sqlSource.setAccessible(true);sqlSource.set(statement,newSqlSourceDecorator(statement.getSqlSource()));}}}这个仍是比较简单的,仅仅凭借反射机制做了一层装修,查询阻拦器完成如下:@Intercepts({@Signature(type=Executor.class,method=query,args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class}),@Signature(type=Executor.class,method=query,args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class,CacheKey.class,BoundSql.class})})publicclassSelectDBNameInterceptorextendsAbstractDBNameInterceptorimplementsInterceptor{@OverridepublicObjectintercept(Invocationinvocation)throwsThrowable{returnupdateDBName(invocation);}}将其装备到Mybatis阻拦器中,便能完成数据库动态切换了。
结合注释咱们解释一下SqlSourceDecorator的逻辑,华网会全其间用到了Java反射相关的操作。
完成逻辑SqlSource是读取XML中SQL内容并将其发送给数据库履行的目标,两立异假如咱们在履行前能阻拦到该目标,并将其间的SQL替换掉便达成了咱们的意图。签约典礼上,国人光伏工业省农科院大豆研究所与公司签订了共建协议,省农科院专家携手公主岭市政府相关部分负责人共同为研究院揭牌。
据悉,大代自年头以来,大代省农科院坚持商场导向、聚集农业工业开展需求,积极探索立异效果转化的新途径,经过组成当地工业研究院,促进各类立异要素向企业集聚,建立科技与工业、科研院所与企业协作的桥梁,打通科技效果快速转化为出产力通道,推进效果技能进入商场、服务出产,助力当地工业和企业开展,现在已建立17家当地工业研究院。10日,表钟宝申吉林省北方大豆立异工业研究院在公主岭市陶家屯镇河东村吉林省百利民农业科技开展有限公司举办签约揭牌典礼
开关速度:加强AO3401具有较快的开关速度,合适用于高频开关电源和快速开关电路中。电路维护:自主在电路中参加恰当的维护元件,如限流电阻、保险丝等,以避免电流过大或短路等异常情况对电路形成损坏。
上一篇: 商务部回应美方要挟再加征10%关税