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

福州网站建设咨询自助建站系统官方版

福州网站建设咨询,自助建站系统官方版,河北招标网,wordpress 媒体库图片文章目录 SpringBoot的特点Spring#xff0c;SpringBoot的区别SpringBoot常用注解标签SpringBoot概述SpringBoot简单Demo搭建读取配置文件的内容 SpringBoot自动配置Condition自定义beanSpringBoot常用注解原理EnableAutoConfiguration SpringBoot监听机制SpringBoot启动流程分… 文章目录 SpringBoot的特点SpringSpringBoot的区别SpringBoot常用注解标签SpringBoot概述SpringBoot简单Demo搭建读取配置文件的内容 SpringBoot自动配置Condition自定义beanSpringBoot常用注解原理EnableAutoConfiguration SpringBoot监听机制SpringBoot启动流程分析初始化模块启动模块 SpringBoot的特点 简化配置Spring Boot自动配置Spring应用程序基于添加的依赖简化了应用程序的配置。快速开发Spring Boot Starter模块和自动配置大大减少了应用程序的开发时间。内嵌的HTTP服务器Spring Boot应用程序内嵌Tomcat、Jetty或Undertow生产就绪Spring Boot提供了许多生产级别的服务如安全指标、运行状况监测和外部化配置等无需部署WAR文件Spring Boot创建的是独立的应用程序你可以使用Java的main方法来运行它无需部署WAR文件。易于集成Spring生态系统Spring Boot可以很容易地与Spring生态系统中的其他项目如Spring Data、Spring Security等集成。灵活性虽然Spring Boot提供了很多默认配置但你仍然可以覆盖这些配置以满足你的特定需求。支持微服务架构Spring Boot是构建微服务架构的理想选择它可以与Spring Cloud等工具无缝集成。社区支持Spring Boot有一个活跃的社区你可以从中获取帮助和支持。 SpringSpringBoot的区别 Spring虽然是开源、轻量级、非侵入式的一站式框架以及用友IoC、AOP并且对于主流应用框架有很好的支持并且提供有MVC实现但是它的配置确实重量级的虽然Spring引入了注解功能但仍然需要编写大量的模板化配置文件项目的依赖管理也是非常麻烦在环境搭建时需要分析要导入大量库的坐标而且还需要分析导入与之有依赖关一旦选错依赖的版本随之而来的不兼容问题就会严重阻碍项目的开发进度。 Spring Boot 对上述 spring 的缺点进行的改善和优化基于约定优于配置的思想可以让开发人员不必在配置与逻辑业务之间进行思维的切换全身心的投入到逻辑业务的代码编写中从而大大提高了开发的效率一定程度上缩短了项目周期。 SpringBoot常用注解标签 SpringBootApplication 是 springboot 核心注解,其中包含SpringBootConfiguration、EnableAutoConfiguration、ComponentScan。Configuration用于定义配置类可替换xml配置文件。EnableAutoConfiguration让Spring Boot根据类路径中的jar依赖为当前项目进行自动配置。ComponentScanSpring将扫描该类所在的包以及子包中的组件。RestController这是一个方便的注解它包括了Controller和ResponseBody。它用于创建RESTful web services。RequestMapping用于映射web请求到特定的处理器类或处理器方法。Autowired用于自动装配bean。Service、Repository、Controller这些注解用于表示类属于特定的层服务层数据访问层表示层。PathVariable用于获取路径中的变量。RequestBody用于绑定请求体中的数据。ResponseBody用于将Controller的方法返回的对象通过适当的HttpMessageConverter转换为指定格式后写入到Response对象的body数据区。 SpringBoot概述 之前的Spring使用的时候虽然已经非常的简化了但是仍有部分功能十分的复杂比如Spring的xml配置在平时的配置中xml的配置十分的复杂平时的话都是直接ctrlcv还有导入相应的坐标依赖需要一个模块导入一个模块但是这样做的问题是容易产生依赖与依赖之间版本的不同。然后会报错。 使用SpringBoot解决了配置问题因为SpringBoot中有自动配置功能就是在应用程序启动过程中SpringBoot考虑了众多因素才决定Spring配置应该用哪个不该用哪个并且SpringBoot提供了起步依赖就是需要使用的一组依赖会打包在一起然后通过坐标引入。还有一系列的辅助功能就是内嵌服务器安全指标外部配置并且SpringBoot是基于约定的很多的配置都有默认值。 SpringBoot简单Demo搭建 SpringBoot的搭建明显比Spring简单了一截首先就是创建一个简单的maven项目然后导入SpringBoot的父工程坐标然后导入web包创建启动类使用SpringApplication进行启动即可 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.6/versionrelativePath/ !-- lookup parent from repository --/parent写一个测试类然后通过127.0.0.1:8080/hello即可访问此时一个简单的SpringBootdemo就搭建起来。使用idea可以一键直接进行搭建 SpringBoot在创建项目的时候使用的是jar打包的方式 yml文件中的格式 读取配置文件的内容 主要有两种自动读取自定义配置 通过Value来导入相应yml对应的配置的数据 使用Environment类在SpirngBoot容器初始化的时候向其中通过AutoWird向这个Environment这个类中去注入相应的加载数据。 使用ConfigurationProperties(prefix “”)将对象导入到相应的类中。 profile SpringBoot内部文件加载顺序 如果目录下有config目录会优先加载config目录下的配置文件如果配置文件在当前项目的目录下会优先加载当前项目下的配置文件平时创建在resoures下的配置文件在加载的时候加载到系统配置的classpath目录下。 加载的顺序为目录所在位置但是加载的时候其他的配置文件也会加载但是有优先级高低的问题优先级低的可以加载到优先级高的没有的配置属性。 SpringBoot外部文件加载 将springboot打包为jar包后启动过程中可以通过命令行的形式可以修改启动配置也可以将配置文件放在和jar包同一目录下然后进行启动会自动加载配置如果当前目录下存在config目录会优先加载config目录下的配置文件 SpringBoot自动配置 Condition自定义bean 创建一个classCondition对象实现springframework里面的Condition然后重写matches方法通过返回值来进行创建bean的控制 自定义控制bean的创建有两种方式一种是自已定义通过实现Condition方法进行重写matches通过返回值来控制这种只能静态的手动判断相应的坐标有没有导入如果需要动态自定义控制bean则需要以下方式 如上图所示我们先自定义一个注解标签将我们需要控制的bean的方法上加上注解标签用来收集需要控制的bean的依赖信息 然后创建一个类实现Condition接口重写matches方法在这个方法中有两个属性其中第一个属性是context使用context属性可以获取相应的上下文对象获取环境IoC容器ClassLoader对象。其中第二个属性是metadata使用metadata可以注解元对象可以获取注解定义的属性值我们的思路是使用第二个属性然后通过我们自定义的注解获取到其中的坐标名然后通过遍历数组getBean来通过其中坐标名获取相应的bean如果此时这个坐标没有导入那么就不会获取到其中的bean程序就回报错然后通过trycatch来将返回值修改为false此时就不会去创建bean。 刚才讲了自定义的条件就是两种但是其实SpringBoot中已经将我们刚才说的所有的自定义的注解已经都内部进行了封装定义直接使用注解就可以实现ConditionalOnProperty判断配置文件中是否有对应的属性和值如果有就初始化BeanConditionalOnClass: 判断环境中是否有对应的字节码文件如果有才初始化BeanConditionalOnMissionBean判断环境中有没有对应的Bean如果有才初始化Bean。 内置四种服务器但是平时只用tomcat通过如果的配置可以实现排除tomcat的依赖引入jetty‘的依赖其实实现依赖切换的原理和自定义初始化bean的原理相似当pom文件中没有tomcat依赖控制加载tomcat的服务器的bean控制器就不会进行创建引入jetty的依赖后 控制创建jetty那块bean的conditionl就回进行相应bean的初始化。 SpringBoot常用注解原理 在启动类上使用的是SpringBootApplication注解标签当我们点进源码可以看到有三个主要的注解标签SpringBootConfiguration,EnableAutoConfiguration,ComponentScan这三个注解标签是SpringBoot启动的时候主要的注解标签先进行简单分析点击SpringBootConfiguration可以看到Configuration在之前的Spring中就已经了解到Configuration注解标签是用来注解配置类的所以启动类也就是配置类可以在其中定义beanEnableAutoConfiguration是非常重要的后面专门讲ComponentScan是一个包扫描组件原理就和Spring那会的一样是用来扫描并且创建bean的 EnableAutoConfiguration的注解 EnableAutoConfiguration注解是用来扫描和启动所有的注解标签内部也是使用了组合注解其中使用了import来导入需要扫描的注解标签。那么关于import的使用在SpringBoot中我们是使用了ComponentScan可以进行扫描当前项目目录下的所有启动注解标签但是对于第三方的项目我们是通过import注解标签来进行导入加载像导入的依赖RedisMySQL等都是通过import来进行自动加载被加载的这些类都会被Spring创建并放入IoC容器中。我们使用import要加载第三方的注解属性需要一条一条的输入比较麻烦但是我们可以在第三方的项目中自定义一个注解用于表示本包中需要扫描的类然后需要使用这个第三方的组件的时候通过第三方自定义的注解即可直接进行扫描 import注解 EnableAutoConfiguration EnableAutoConfiguration这个注解是springboot自动配置的核心EnableAutoConfiguration这个注解的内部使用Import来加载配置类在配置类中通过一系列的请求以及判断最终都是要走向加载配置文件spring.factories在该配置文件中定义了大量的配置类当启动springboot的时候这些配置类都会被启动并且初始化相应的bean但是并不是所有的bean都会加载在每一个配置bean的时候都会有使用Condition条件注解只有满足条件才会初始化bean用此来控制需要初始化的bean。 SpringBoot监听机制 第一个ApplicationContextInitializer是在初始化的时候运行的SpringApplicationRunListener启动的时候会触发生命周期会在不同的时候做一些不同的事情。在启动springboot的时候会默认执行CommandLineRunner和ApplicationRunner这两个接口的run方法。在这两个方法中可以执行一些启动时的操作比如redis缓存在平时我们需要第一次在redis缓存中拿取数据这时候在springboot启动的时候我们可以通过这些启动类来实现run方法进而实现我们想要的功能。可以通过spring.factories来配置第一个启动启动时机是在那个logo加载之后。然后可以通过配置启动第二个接口但是需要通过公共构造方法启动使用Component SpringBoot启动流程分析 初始化模块 当我们使用SpringApplication启动springboot的时候首先会new 一个SpringApplication也就是构造一个spring应用构建这个应用首先会加载初始化模块在初始化模块中会先配置source检查配置是否web环境还有创建初始化构造器创建应用监听器还有配置应用的主方法所在类。在创建初始化构造器的时候使用了自动配置。 启动模块 此时通过SpringApplicatino.run来启动首先启动的时候会调用监听模块会在启动相应的模块的时候去执行一些功能其次会调用环境配置然后加载配置的属性文件然后调用logo文件最后是上下文配置模块在这块IoC的初始化容器会创建bean在这部分需要加载配置配置监听并且准备bean的工厂通过bean的工厂去生产bean
http://www.lakalapos1.cn/news/25637/

相关文章:

  • 山东君天建设工程有限公司网站上海百度推广
  • 南通市区有哪几家做网站的7个优秀网站设计赏析
  • 徐州 商城网站设计公司网站制作源码
  • 一台虚拟主机能建设几个网站wordpress提问模块
  • 互联网时代 网站建设汕头网站制作怎么做
  • 电子商务网站建设新手河北省建设网
  • 芜湖灵创网站建设高端网站建设询问磐石网络
  • 网站侧边栏导航供需网站开发
  • 营销网站占用多少m空间品牌型网站案例
  • 免备案网站建站网站建设一般多少钱要如何选择
  • dede免费手机网站模板企业网站建设itcask
  • 罗湖做网站58网站总体规划设计说明
  • 海外网站服务器网址网站app的区别
  • 类似百度的网站wordpress可视编辑
  • dw做的网站如何让别人看看黄页88网站推广效果
  • 辽宁同鑫建设网站钢构网架公司
  • 网页设计制作一个餐饮网站免费在线观看电视剧的网站
  • 做网站卖东西流程网页设计样图
  • 重庆网站推广公司电话企业网站注册流程
  • 建设部网站查资质中裕隆做网站应怎么缴税
  • 静态网站注入wordpress __()
  • 如何制作网站后台网站手机采集
  • 个人网站名称怎么写网站换了域名
  • 福州网站设计哪家做的好网络直播公司
  • 如何找网站网站的推广方式包括
  • 广州网站设计费用百度找不到 网站
  • 溧水做网站价格企业网站报价方案
  • 网站数据库连接不上的常见问题招聘网站报表怎么做
  • 网站后台首页设计wordpress lamp lnmp
  • 建站如何做一个网页