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

做响应式网站的价格知了seo

做响应式网站的价格,知了seo,高端网站建设公司兴田德润在那里,什么是网站解决方案SPI spi : service provider interface : 是java的一种服务提供机制,spi 允许开发者在不修改代码的情况下,为某个接口提供实现类,来扩展应用程序 将实现类独立到配置文件中,通过配置文件控制导入&#xff…
SPI

spi : service provider interface : 是java的一种服务提供机制,spi 允许开发者在不修改代码的情况下,为某个接口提供实现类,来扩展应用程序

在这里插入图片描述
将实现类独立到配置文件中,通过配置文件控制导入:

在这里插入图片描述

 public static void main(String[] args) {ServiceLoader<Animal> load = ServiceLoader.load(Animal.class);for (Animal animal : load) {animal.sound();}}

就会导入Animal的两个实现类

问题:

  • spi 和一般的面向接口变成有什么区别?,,使用spi导入和直接用,不是一样的吗
    • 动态加载实现类
      在一般的面向接口变成中,通常需要显示的创建实现类,,,通过spi机制,可以在运行时动态加载实现类,无需在代码中指定具体的实现类,代码更加灵活可扩展
    • 配置文件
      一般在面向接口编程中,通常在代码中显示的指定具体的实现类,,显示的注入实现类,,而spi使用配置文件 META-INF/services 指定接口实现类,如果要新增或者切换实现类,那么只需要修改配置文件即可,,

spi使得应用程序设计,更具灵活性,模块化,可扩展性,,它通过动态加载实现类,解耦接口和实现,以及使用配置文件来实现这些特性,,从而使得应用程序更加智能的加载,和使用模块

springboot自动装配

springboot自动装配是 SPI 思想的一种应用

@SpringbootApplication : 声明这个类是个引导类,或者叫 配置类
是一个复合注解

  • @SpringbootConfiguration
  • @ComponentScan : 扫描当前包下 及其子包的 @Component 标记的类
  • @EnableAutoConfiguration

自动装配里面用了 @Import 和 ImportSelector接口,,

@Import和ImportSelector使用

创建了一个配置类 :

@Configuration
public class MyConfig {@Beanpublic Watermelon watermelon(){return new Watermelon();}
}

可以使用 @Import(MyConfig.class) 直接导入配置类,

//@ComponentScan
//    @Import(MyConfig.class)@Import(FruitConfigurationSelector.class)
public class FruitApplication {public static void main(String[] args) {// 默认启动web服务器,@ComponentScan会去扫web服务器ConfigurableApplicationContext context = new SpringApplicationBuilder(FruitApplication.class).web(WebApplicationType.NONE)  // 关闭web服务器.run(args);Watermelon watermelon = (Watermelon) context.getBean("watermelon");System.out.println("watermelon = " + watermelon);}
}

也可以使用 @Import 导入 ImportSelector 的实现类,,这个实现类返回一个数组,表示要注入的bean的全限定类名的集合

public class FruitConfigurationSelector implements ImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[]{MyConfig.class.getName()};}}
@EnableXXXAutoConfiguration

写一个注解,在这个注解上面,使用@Import 导入若干要导入的Bean,,
为什么要有@EnableXXXAutoConfiguration : 模块装配 ,如果同时需要几个模块,使用@EnableXXXAutoConfiguration 装配整合成一个

springboot中@EnableAutoConfiguration

在这里插入图片描述
ImportSelector 中的 selectImports方法 去导入bean,,
getCandidateConfigurations方法 去加载 spring.factories 中的配置,,预选配置再根据@Conditional去判断哪些要注入容器
在这里插入图片描述

在这里插入图片描述

http://www.hkea.cn/news/806625/

相关文章:

  • 快速做网站的方法网站换了域名怎么查
  • 建筑工程网络计划图怎么编制百度seo搜索排名
  • 免费建网站系统百度云登陆首页
  • wordpress 采集微博网站建设优化
  • 做淘宝客新增网站推广百度用户服务中心人工电话
  • 域名备案网站建设书模板百度统计登录
  • 禁止WordPress访问官网优化关键词排名提升
  • 爬取漫画数据做网站今日热搜新闻头条
  • 雄安网站建设制作网站关键词如何快速上首页
  • 佛山从事网站建设百度小程序入口官网
  • 自建网站平台可以实现哪些功能网络营销这个专业怎么样
  • 佛山新网站制作公司网页制作成品模板网站
  • 校园网站建设的意见企业管理培训课程网课
  • 郑大远程教育动态网站建设seo优化关键词排名
  • 做logo什么网站昆明百度关键词优化
  • 怎样做省钱购物网站sem推广代运营
  • 英文网站开发公司万网阿里云域名查询
  • 做调查问卷网挣钱的网站新闻 今天
  • 网站建设工作小组在线建站平台免费建网站
  • 可以发广告的网站湖南seo推广系统
  • 大丰网站建设哪家好成都seo
  • 学校网站建设项目的wbsseo交流qq群
  • 筑梦网站建设西安百度竞价开户
  • 个体营业执照可以做网站搞推广吗推广网站制作
  • 公共交通公司网站建设方案移动慧生活app下载
  • 国内开源代码网站搜了网推广效果怎么样
  • html5 metro风格网站模板今日新闻事件
  • 网站不在首页显示出来做网络推广
  • 上海网站seo公司网页推广平台
  • 网站服务器租用价格表百度怎么发布自己的广告