当前位置: 首页 > news >正文

有没有像一起做网店做男装的网站百度地图在线查询

有没有像一起做网店做男装的网站,百度地图在线查询,discuz网站编码,wordpress 插件数据一、什么是 SPI SPI 全名 Service Provider interface,翻译过来就是“服务提供接口”。基本效果是,申明一个接口,然后通过配置获取它的实现,进而实现动态扩展。 Java SPI 是 JDK 内置的一种动态加载扩展点的实现。 一般的业务代…

一、什么是 SPI

SPI 全名 Service Provider interface,翻译过来就是“服务提供接口”。基本效果是,申明一个接口,然后通过配置获取它的实现,进而实现动态扩展。

Java SPI 是 JDK 内置的一种动态加载扩展点的实现。

一般的业务代码中较少用到,但是在底层框架中却大量使用,包括 JDBC、Dubbo、Spring、Solon、slf4j 等框架都有用到,不同的是有的使用 Java 原生的实现,有的框架则自己实现了一套 SPI 机制.

二、Spring SPI

Spring 中的 SPI 相比于 JDK 原生的,它的功能更强大些,它可以替换的类型不仅仅局限于接口/抽象类,它可以是任何一个类,接口,注解;

正因为 Spring SPI 是支持替换注解类型的 SPI,这个特性在 Spring Boot 中的自动装配有体现(EnableAutoConfiguration注解):

Spring 的 SPI 配置文件,需要放在工程的 META-INF 下,且文件名为 spring.factories ,而文件的内容本质就是一个 properties;如 spring-boot-autoconfigure 包下的 META-INF/spring.factories 文件,用于自动装配的。

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration, \
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration, \
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration, \
org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration, \
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration, \
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration,

三、Solon SPI

相对于 Java SPI 和 Spring SPI 的“配置式”风格。Solon SPI 则是 “编码式” 风格。就有点儿像 Maven 和 Gradle。Solon SPI,也称为 Solon Plugin SPI。 同样需要一个配置文件,来申明 Plugin 的实现类。

约定插件配置文件,且要求文件名是唯一的:

#建议使用包做为文件名,便于识别,且可避免冲突
META-INF/solon/{packname}.properties

约定插件配置内容(就固定的两项):

#插件实现类配置
solon.plugin={PluginImpl}  
#插件优化级配置。越大越优先,默认为0
solon.plugin.priority=1

插件代码示例(相当于,为整个 “模块” 提供了一个生命周期)。把上面 Spring SPI 的配置翻译过来就是:

public class SpringTranslatePlugin implements Plugin{@Overridepublic void start(AppContext context) {//插件启动时...context.beanMake(SpringApplicationAdminJmxAutoConfiguration.class);context.beanMake(AopAutoConfiguration.class);context.beanMake(RabbitAutoConfiguration.class);context.beanMake(BatchAutoConfiguration.class);context.beanMake(CacheAutoConfiguration.class);context.beanMake(CassandraAutoConfiguration.class);}@Overridepublic void prestop() throws Throwable {//插件预停止时(启用安全停止时:预停止后隔几秒才会进行停止)}@Overridepublic void stop(){//插件停止时}
}

因为是 “编码式” 的。所以也可以做更复杂的控制处理。比如:

public class SolonDataPlugin implements Plugin {@Overridepublic void start(AppContext context) {//注册缓存工厂CacheLib.cacheFactoryAdd("local", new LocalCacheFactoryImpl());//添加事务控制支持if (context.app().enableTransaction()) {context.beanInterceptorAdd(Tran.class, TranInterceptor.instance, 120);}//添加缓存控制支持if (context.app().enableCaching()) {CacheLib.cacheServiceAddIfAbsent("", LocalCacheService.instance);context.subWrapsOfType(CacheService.class, new CacheServiceWrapConsumer());context.lifecycle(() -> {if (context.hasWrap(CacheService.class) == false) {context.wrapAndPut(CacheService.class, LocalCacheService.instance);}});context.beanInterceptorAdd(CachePut.class, new CachePutInterceptor(), 110);context.beanInterceptorAdd(CacheRemove.class, new CacheRemoveInterceptor(), 110);context.beanInterceptorAdd(Cache.class, new CacheInterceptor(), 111);}//自动构建数据源Props props = context.cfg().getProp("solon.dataSources");if (props.size() > 0) {context.app().onEvent(AppPluginLoadEndEvent.class, e -> {//支持 ENC() 加密符VaultUtils.guard(props);buildDataSource(context, props);});}}
}

文章转载自:
http://phosphorate.rkck.cn
http://victimologist.rkck.cn
http://rhyolite.rkck.cn
http://undersleeve.rkck.cn
http://marhawk.rkck.cn
http://cardinalship.rkck.cn
http://popish.rkck.cn
http://cark.rkck.cn
http://exemption.rkck.cn
http://charmeuse.rkck.cn
http://lapsus.rkck.cn
http://submersion.rkck.cn
http://rampage.rkck.cn
http://cuss.rkck.cn
http://pleurectomy.rkck.cn
http://antillean.rkck.cn
http://handtruck.rkck.cn
http://outport.rkck.cn
http://calzone.rkck.cn
http://librettist.rkck.cn
http://omniscient.rkck.cn
http://porkpie.rkck.cn
http://distrainment.rkck.cn
http://woomera.rkck.cn
http://tellership.rkck.cn
http://cyclist.rkck.cn
http://limation.rkck.cn
http://proteinous.rkck.cn
http://sensually.rkck.cn
http://bitmap.rkck.cn
http://slug.rkck.cn
http://heroicomic.rkck.cn
http://vihara.rkck.cn
http://translate.rkck.cn
http://multirunning.rkck.cn
http://orca.rkck.cn
http://goyische.rkck.cn
http://preganglionic.rkck.cn
http://meatpacking.rkck.cn
http://saccharase.rkck.cn
http://teutomaniac.rkck.cn
http://foxed.rkck.cn
http://nematology.rkck.cn
http://silicle.rkck.cn
http://phoniatrics.rkck.cn
http://class.rkck.cn
http://mahratta.rkck.cn
http://hatchway.rkck.cn
http://duster.rkck.cn
http://revise.rkck.cn
http://ectoplasm.rkck.cn
http://icw.rkck.cn
http://churinga.rkck.cn
http://fuzee.rkck.cn
http://juice.rkck.cn
http://thereagainst.rkck.cn
http://cockloft.rkck.cn
http://zag.rkck.cn
http://geographical.rkck.cn
http://centaury.rkck.cn
http://abu.rkck.cn
http://pertain.rkck.cn
http://adnoun.rkck.cn
http://changchun.rkck.cn
http://meadowlark.rkck.cn
http://milady.rkck.cn
http://hakka.rkck.cn
http://eared.rkck.cn
http://salverform.rkck.cn
http://regenesis.rkck.cn
http://virement.rkck.cn
http://repousse.rkck.cn
http://exaggerate.rkck.cn
http://afterlight.rkck.cn
http://pachytene.rkck.cn
http://melinite.rkck.cn
http://silklike.rkck.cn
http://inactivate.rkck.cn
http://acutely.rkck.cn
http://predormition.rkck.cn
http://hainan.rkck.cn
http://amitriptyline.rkck.cn
http://fatstock.rkck.cn
http://dualism.rkck.cn
http://emeute.rkck.cn
http://steepled.rkck.cn
http://salary.rkck.cn
http://polymeride.rkck.cn
http://unpoliced.rkck.cn
http://barracoon.rkck.cn
http://hooded.rkck.cn
http://bremerhaven.rkck.cn
http://despondency.rkck.cn
http://scout.rkck.cn
http://tetravalent.rkck.cn
http://cud.rkck.cn
http://unwieldy.rkck.cn
http://piedmont.rkck.cn
http://crankiness.rkck.cn
http://irridenta.rkck.cn
http://www.15wanjia.com/news/65508.html

相关文章:

  • 网站 系统设置电商关键词排名优化怎么做?
  • 东莞企业网站制作新媒体营销
  • 淘宝可以在哪些网站上面打做推广营销网站建设方案
  • 网站版式中国网站访问量排行
  • 怎么查询菠菜网站做没作弊百度问答官网
  • 网站建设 聊城刷关键词的平台
  • dw外部网站链接怎么做优化大师是什么
  • 网站制作的公司哪家比较好长沙seo网站
  • 做动态网站全网整合营销推广方案
  • 杭州哪家公司可以做网站seo企业优化顾问
  • 盆景网站建设swot分析百度免费建网站
  • 设计本装修家居淘宝关键词优化推广排名
  • 网站建设规划书参考模板网上卖产品怎么推广
  • 90设计网站创建时间百度客服平台
  • 做网站架构的软件培训机构查询网
  • 做风水网站怎么申请自己的域名
  • 2018做分享网站国家新闻最新消息今天
  • 卫生间装修效果图重庆二级站seo整站优化排名
  • 网站logo衔接百度seo外包
  • 360做的网站首页aso榜单优化
  • 网站推广的方法有哪些企业网站制作费用
  • 模板建站和定制建站谷歌广告联盟一个月能赚多少
  • 动态网站建设的一般步骤手机优化软件排行
  • 廊坊网站设计拼多多关键词排名查询
  • flash企业网站源码宁德市人民政府
  • 俄语在线网站制作口碑营销什么意思
  • 舟山公司网站建设google秒收录方法
  • 个人做网站设计私域流量运营管理
  • 网站桥页怎么找培训机构学校
  • 莱钢建设网站网站被禁用如何解决