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

创办一个网站的费用百度知道免费提问

创办一个网站的费用,百度知道免费提问,宣传网站制作,手机网站底部导航菜单前言 大概10来年以前,当时springboot刚刚出现并没有流行,当时的Java开发者们开发Web应用主要是使用spring整合springmvc或者struts、iBatis、hibernate等开发框架来进行开发。项目里一般有许多xml文件配置,其中配置了很多项目中需要用到的Be…

前言

大概10来年以前,当时springboot刚刚出现并没有流行,当时的Java开发者们开发Web应用主要是使用spring整合springmvc或者struts、iBatis、hibernate等开发框架来进行开发。项目里一般有许多xml文件配置,其中配置了很多项目中需要用到的Bean,扫描的路径等等,类似下面这样:
https://www.chengpei.top/upload/spring-xml.png
看起来很麻烦,但是相比于让我们自己在代码里自己构建各种对象,自己的set各种属性,自己维护大量对象的依赖关系使用,这样预先配置交给Spring管理,后续采用依赖注入的方式在需要的地方拿来使用的方式,已经是相当的舒服了。

SpringBoot

SpringBoot框架的命名关键在"Boot"上,或许Boot Spring更能说明这个微框架设计的初衷,也就是快速启动一个Spring应用。快在哪里呢,这里如果我们要在项目里整合Redis,则只需要添加如下的依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

然后添加上redis的连接参数,就可以需要操作Redis的地方注入RedisTemplate对象来使用了,不需要在xml中配置RedisConnectionFactoryRedisTemplate等相关依赖的类了。

spring-boot-autoconfigure

这里有个比较关键的依赖spring-boot-autoconfigure,里面有一个RedisAutoConfiguration

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
public class RedisAutoConfiguration {@Bean@ConditionalOnMissingBean(name = "redisTemplate")public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {RedisTemplate<Object, Object> template = new RedisTemplate<>();template.setConnectionFactory(redisConnectionFactory);return template;}@Bean@ConditionalOnMissingBeanpublic StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {StringRedisTemplate template = new StringRedisTemplate();template.setConnectionFactory(redisConnectionFactory);return template;}
}

这里的@ConditionalOnClass是一个基于条件的配置,在满足条件时会加载当前配置类,类似的注解在org.springframework.boot.autoconfigure.condition包下还有许多,例如:
@ConditionalOnClass
@ConditionalOnBean
@ConditionalOnMissingClass
@ConditionalOnMissingBean
@ConditionalOnProperty

有了这些注解的配合,我们就可以结合@EnableAutoConfigurationn实现基于条件的自动配置了。
SpringBoot之所以能够流行,很大一部分功劳需要归功于它预先提供的一系列自动配置的依赖模块,而这些依赖模块都是基于以上注解实现的,这也意味着所有的这些依赖模块都是按需加载的,只有符合某些特定条件,这些依赖模块才会生效,这也就是我们所谓的“智能”自动配置。

spring.factories

例如以上redis自动配置的例子,这里只要环境中有RedisOperations就会自动配置Redis相关类,你可以在这个自动配置类附近找到许多这样的xxxxAutoConfiguration,很多组建都可以类似这样通过引入依赖后直接使用,但是如果只有自动配置类的话,其实这个类也不会被加载,因为我们在启动SpringBoot应用时,使用的@SpringBootApplication注解,他只会自动扫描当前包以及子包下的类,如果扫描不到自然也不会加载了,所以这里还要配合META-INF/spring.factories文件,文件中配置了所有需要被扫描到的自动装配类,SpringBoot应用启动时,会由SpringFactoriesLoader取读取该文件加载,这里比较像Java SPI机制,对Java SPI感兴趣也可以看看这篇博文:Java SPI机制介绍及原理分析
以上就是SpringBoot核心功能Starter的一个介绍,下一篇博文(实现一个自己的spring-boot-starter,基于SQL生成HTTP接口)我会基于这个原理实现一个自己的SpringBootStarter模块,只要引入了该模块,项目就自然具有了通过配置SQL自动生成Http接口的能力。

http://www.dinnco.com/news/62404.html

相关文章:

  • 珠海做网站的公司有哪些百度搜索风云榜官网
  • 用c语言可以做网站吗建网站多少钱
  • 长沙网站策划it培训班学出来有用吗
  • 成都网站建设推广在成都百度
  • 买了域名就可以做网站网络营销推广公司
  • python做网站效率百度下载安装官方下载
  • ppt超链接到网站怎么做百度手机助手最新版下载
  • 常见网站漏洞seo怎么优化效果更好
  • 可以做早安图片的网站网络推广怎么样
  • 做奢侈品回收网站特点网络推广都有什么方式
  • 用手机搭建自己的网站最新域名查询
  • 重庆网站优化排名推广百度官方网页版
  • 网站目录改版搜索引擎在线观看
  • 旅游网站制作方案营销渠道策划方案
  • 湘潭做网站价格优选磐石网络站外推广免费网站
  • 现在做网站用什么工具云搜索app下载
  • 在线免费logo设计网站百度快速seo
  • wordpress4.9 php版本武汉官网优化公司
  • 做7寸照片的网站上海网站关键词排名
  • 目录 首页 wordpress北京优化seo公司
  • 武城网站建设电话百度搜索资源平台token
  • 服务器重启 iis网站暂停营销网站的宣传、推广与运作
  • 广州网站设计流程指定关键词排名优化
  • 长春网站建设yunbeiw乐山网站seo
  • 佛山网站建设专业公司郑州seo关键词
  • 茂名公司网站建设在线视频观看免费视频22
  • 网站内部优化sem优化怎么做
  • 做网站一段话太多隐藏网络文章发布平台
  • 大连手机自适应网站制作公司全球疫情最新数据消息
  • 配色设计网站推荐浏览器打开网站