课程讲义mdspringboot基础3.能够理解SpringBoot的核心功能_第1页
课程讲义mdspringboot基础3.能够理解SpringBoot的核心功能_第2页
课程讲义mdspringboot基础3.能够理解SpringBoot的核心功能_第3页
课程讲义mdspringboot基础3.能够理解SpringBoot的核心功能_第4页
课程讲义mdspringboot基础3.能够理解SpringBoot的核心功能_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

能够完成perties配置文件的配置能够完成application.yml配置文件的t能够使用SpringBoot集成SpringData原有Spring优缺点分Spring的优点分i是v企业版(vaEtpseEtion,,也称)的轻量级代替品。无需开发重量级的Etpsev(E),Si为企业级v开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的v对象(inldvabt,POO)实现了E的功能。Spring的缺点分置。Spring2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring3.0引入所有这些配置都代表了开发时的损耗。因为在思考Sig特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,i实用,但与此同时它要求的回报也不少。除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。SpringBoot解决上述SpringiBoot对上述pig的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。SpringBoot的特SpringBoot的功起步起步依赖本质上是一个Maven项目对象模型(ProjectObjectModel,POM),定义了对其他库的传递依SpringBoot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定二、SpringBoot快创建Maven工添加SpringBoot的起步依SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-<artifactId><artifactId>spring-boot-starter-<artifactId><artifactId>spring-boot-starter-编写SpringBoot编写 测1123456789./\\/(('____\\\|'_|'_||'_\/_`|\\\)||_)|||||||(_||)))|.|_||_|_||_\,|///::SpringBoot2018-05-08INFO5672---DESKTOP-RRUNFUHwithPID:StartingMySpringBootApplicationmuzimooin...... :MappedURLpath[/**]ontohandlerof 2018-05-08 INFO5672---:RegisteringbeansforJMXexposure 2018-05-08 INFO5672--withcontextpath :Tomcatstartedonport(s):8080 2018-05-08 INFO5672--- :StartedMySpringBootApplicationin4.252seconds(JVMrunningfor5.583)通过日志发现,Tomcatstartedonport(s):8080(http)withcontextpath''tomcat已经起步,端口8080,web应用的虚拟工程名称为空2.22.2SpringBoot代码解@SigBoApicon:标注SpnBot的启动类,该注解具备多种功能(后面详细剖析)SpingAplcaion.run(MySpingBootApicaionclass)代表运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象SpringBoot工程热部量的时间,我们可以在修改代码后不重启就能生效,在poml中添加如下配置就可以实现这样的功能,我们称之为热部署。<!--<!--热部署配置<artifactId>spring-boot-出现这种情况,并不是热部署配置问题,其根本原因是因为InlijIEDA默认情况下不会自动编译,需要对IDEA进然后Shift+Ctrl+Alt+/,选择使用idea快速创建SpringBoot项 xmlns:xsi="<artifactId>spring-boot-starter-<artifactId>spring-boot-starter-<artifactId>spring-boot-starter-<artifactId>spring-boot-maven-可以使用快速的方式创建Controller进行,此处不再赘三、SpringBoot原理分分析spring-boot-starter-按住tl点击po中的sigbootsttt,跳转到了sigbootsttpnt的po,l配置如下(只摘抄了部分重点配置):<artifactId><artifactId>spring-boot-<relativePath>../../spring-boot-按住Ctrl点击pom.xml中的spring-boot-starter-dependencies,跳转到了spring-boot-starter-dependencies<build-helper-maven-plugin.version><build-helper-maven-plugin.version>3.0.0</build-helper-maven-<appengine-sdk.version>1.9.63</appengine-<byte-buddy.version>1.7.11</byte-......<artifactId>spring-<artifactId>spring-boot-......<artifactId>kotlin-maven-<artifactId>jooq-codegen-<artifactId>spring-boot-maven-......从上面的sin-btstte-epndecies的po.xl中我们可以发现,一部分坐标的版本、依赖管理、插件管理已经定义好,所以我们的SigBot工程继承sin-otsttr-aet后已经具备版本锁定等配置了。所以起步依赖的作用就是进行依赖的传递。分析spring-boot-starter-按住tl点击po中的sigbootsttwb,跳转到了spigbootsttw的po,l配置如下(只摘抄了部分重点配置):"xmlns="3xmlns:xsi="4567<artifactId>spring-boot-89<artifactId>spring-boot-starter-<name>SpringBootWeb<artifactId>spring-boot-<artifactId>spring-boot-starter-<artifactId>spring-boot-starter-<artifactId>hibernate-<artifactId>spring-<artifactId>spring-从上面的pigbootttwb的poxl中我们可以发现,pigbootttwb就是将wb开发要使用的pigwb、pigwvc等坐标进行了“打包”,这样我们的工程只要引入sigbootsttwb起步依赖的坐标就可以进行w开发了,同样体现了依赖传递的作用。按住Ctrl点击查看启动类MySpringBootApplication上的注解*@returntheclassesto@AliasFor(annotation=EnableAutoConfiguration.class)Class<?>[]exclude()default{};......}注解@SpringBootApplication的源其中其中,@Import(AutoConfigurationImportSelector.class导入了AutoConfigurationImportSelector类 其中,SpngFctisLadladFctryNams方法的作用就是从MEAINFsi.acoes文件中指定类对应的类名称列表spring.factories文件中有关自动配置的配置信息如其中 其中prefix="server"表示SpringBoot配置文件中的前缀,SpringBoot会将配置文件中以server开始的属性映射到该类四、SpringBoot的配置文SpringBoot配置文件类型和作SpringBoot默认会从 下加载perties或application.yml(application.yaml)文其中,aiciopopis文件是键值对类型的文件,之前一直在使用,所以此处不在对prpees文件的格式进行阐述。除了prpees文件外,SinBt还可以使用yml文件进行配置,下面对yl文件进行讲解。application.yml配置文ML文件格式是ML(MLntMkupLgu)编写的文件格式,AML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易类阅读,容易和语言交互的,可以被支持AML库的不同的编程语言程序导入,比如:/,uy,Python,v,P,,PHP等。ML文件是以数据为的,比传统的l方式更加简洁。keyvaluekey1:value1key2:或者key:{key1:value1,key2:示例代码#或#或或者key:示例代码#或#或 注意:value1与之间的-之间存在一个SpringBoot配置信息的查上面提及过,piBoot的配置文件,主要的目的就是对配置信息进行修改的,但在配置时的ky从哪里去查询呢?我们可以查阅Boot的文档文档URL:mon-常用的配置摘抄如下 5perties.*=#AdditionalQuartzScheduler67#8#WEB9##EMBEDDEDSERVERCONFIGURATIONserver.port=8080#ServerHTTPserver.servlet.context-path=#Contextpathoftheserver.servlet.path=/#Pathofthemaindispatcher#HTTPencodingspring.http.encoding.charset=UTF-8#CharsetofHTTPrequestsandresponses.Addedthe"Content-Type"headerifnotset#JACKSONspring.jackson.date-format=#Dateformatstringorafully-qualifieddateclassname.Forinstance,`yyyy-MM-dd#SPRINGMVCspring.mvc.servlet.load-on-startup=-1#Loadonstartuppriorityofthespring.mvc.static-path-pattern=/**#Pathpatternusedforstaticspring.mvc.view.prefix=#SpringMVCviewspring.mvc.view.suffix=#SpringMVCview#DATASOURCE(DataSourceAutoConfiguration&spring.datasource.driver-class-name=#FullyqualifiednameoftheJDBCdriver.detectedbasedontheURLbyspring.datasource.password=#Loginpasswordofthespring.datasource.url=#JDBCURLofthespring.datasource.username=#Loginusernameofthe#JEST(ElasticsearchHTTP)spring.elasticsearch.jest.password=#Loginspring.elasticsearch.jest..host=#hosttheHTTPshouldspring.elasticsearch.jest..port=#porttheHTTPshouldspring.elasticsearch.jest.read-timeout=3s#Readspring.elasticsearch.jest.username=#Login我们可以通过配置appicaion.popeties或者appicaionyml来修改SpringBoot的默认配置例如:pertiesapplication.yml使用注解@Value映我们可以通过@Vl注解将配置文件中的值映射到一个Si管理的的字段上例如:perties或者,application.yml配置如下 浏览器地址 结果如下使用注解@ConfigurationProperties映通过注解@ConfigutionPoptis(fi"配置文件中的y的前缀)可以将配置文件中的配置自动与实体进行映射perties或者,application.yml配置如下 浏览器地址:结果如下注意:使用@ConfiutionPopt方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供t方法才可以,而使用@Vu注解修饰的字段不需要提供st方法五、SpringBoot与整合其他技添加Mybatis的起步依<!--mybatis<!--mybatis起步依赖<artifactId>mybatis-spring-boot-添加数据库驱动坐<artifactId><artifactId>mysql-connector-添加数据库连接信在perties中添加数据量的连接信息创建user创建实体编写注意:@Mapper标记该类是一个mybatis的mapper接口,可以被springboot自动扫描到spring上下文配置Mapper映射文在src\main\resources\mapper路径下加入UserMapper.xml配置文件在perties中添加mybatis的信#spring#spring集成Mybatis环mybatis.type-#加载Mybatis映射文编写测试 测J添加Jt的起步依<artifactId>spring-boot-starter-编写测试其中itCRun控制台打印信SpringBoot整合SpringData添加SpringDataJPA的起步依<artifactId><artifact

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论