《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第13章 Spring Boot入门_第1页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第13章 Spring Boot入门_第2页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第13章 Spring Boot入门_第3页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第13章 Spring Boot入门_第4页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第13章 Spring Boot入门_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第13章SpringBoot入门学习目的与要求本章主要介绍了SpringBoot基础知识,包括核心注解@SpringBootApplication、基本配置、读取应用配置、日志配置、自动配置原理等内容。通过本章的学习,掌握如何构建SpringBoot应用的开发环境,了解SpringBoot的运行原理。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录13.1SpringBoot概述13.2第一个SpringBoot应用13.3SpringBoot的基本配置13.4读取应用配置13.5日志配置13.6SpringBoot的自动配置原理《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.1.1什么是SpringBootSpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。使用SpringBoot框架可以做到专注于Spring应用的开发,无须过多关注样板化的配置。在SpringBoot框架中,使用“约定优于配置(COC,ConventionOverConfiguration)”的理念。针对企业应用开发,提供了符合各种场景的spring-boot-starter自动配置依赖模块,这些模块都是基于“开箱即用”的原则,进而使企业应用开发更加快捷和高效。可以说,SpringBoot是开发者和Spring框架的中间层,目的是帮助开发者管理应用的配置,提供应用开发中常见配置的默认处理(即约定优于配置),简化Spring应用的开发和运维,降低开发人员对框架的关注度,使开发人员把更多精力放在业务逻辑代码上。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.1.2SpringBoot的优点1.使编码变得简单:推荐使用注解。2.使配置变得快捷:自动配置、快速构建项目、快速集成第三方技术的能力。3.使部署变得简便:内嵌Tomcat、Jetty等Web容器。4.使监控变得容易:自带项目监控。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.1.3SpringBoot的主要特性1.约定优于配置SpringBoot遵循“约定优于配置”的原则,只需很少的配置,大多数情况直接使用默认配置即可。2.独立运行的Spring应用SpringBoot可以以jar包的形式独立运行。使用java-jar命令或者在项目的主程序中执行main方法运行SpringBoot应用(项目)。3.内嵌Web容器内嵌Servlet容器,SpringBoot可以选择内嵌Tomcat、Jetty等Web容器,无须以war包形式部署应用。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.1.3SpringBoot的主要特性4.提供starter简化Maven配置SpringBoot提供了一系列的starterpom简化Maven的依赖加载,基本上可以做到自动化配置,高度封装,开箱即用。5.自动配置SpringSpringBoot根据项目依赖(在类路径中的jar包、类)自动配置Spring框架,极大减少了项目的配置。6.提供准生产的应用监控SpringBoot提供基于HTTP、SSH、TELNET对运行的项目进行跟踪监控。7.无代码生成和XML配置SpringBoot不是借助于代码生成来实现的,而是通过条件注解来实现的。提倡使用Java配置和注解配置相结合的配置方式。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录13.1SpringBoot概述13.2第一个SpringBoot应用13.3SpringBoot的基本配置13.4读取应用配置13.5日志配置13.6SpringBoot的自动配置原理《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.2.1Maven简介ApacheMaven是一个软件项目管理工具。基于项目对象模型(ProjectObjectModel,POM)的理念,通过一段核心描述信息来管理项目构建、报告和文档信息。在Java项目中,Maven主要完成两件工作:①统一开发规范与工具;②统一管理jar包。Maven统一管理项目开发所需要的jar包,但这些jar包将不再包含在项目内(即不在lib目录下),而是存放于仓库当中。1.中央仓库存放开发过程中所有jar包,例如JUnit,都可以通过互联网从中央仓库中下载,仓库地址:。2.本地仓库本地计算机中的仓库。官方下载Maven的本地仓库,配置在“%MAVEN_HOME%\conf\settings.xml”文件中,找到“localRepository”即可。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.2.2Maven的pom.xmlMaven是基于项目对象模型的理念管理项目的,所以Maven的项目都有一个pom.xml配置文件来管理项目的依赖以及项目的编译等功能。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.properties元素<properties><!--spring版本号-->

<spring.version>6.0.0</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId>

<version>${spring.version}</version></dependency></dependencies>《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.dependencies元素<dependencies></dependencies>,此元素包含多个项目依赖需要使用的<dependency></dependency>元素。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.dependency元素<dependency><!--groupId组织的唯一标识--><groupId>org.springframework</groupId><!--artifactId项目的唯一标识-->

<artifactId>spring-core</artifactId> <!--version项目的版本号-->

<version>${spring.version}</version></dependency>《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

4.scope子元素在<dependency></dependency>元素中,有时使用<scope></scope>子元素管理依赖的部署。<scope></scope>子元素可以使用5个值:(1)compile(编译范围)compile是缺省值,即默认范围。依赖如果没有提供范围,那么该依赖的范围就是编译范围。编译范围的依赖,在所有的classpath中可用,同时也会被打包发布。(2)provided(已提供范围)provided表示已提供范围,只有当JDK或者容器已提供该依赖才可以使用。已提供范围的依赖不是传递性的,也不会被打包发布。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

4.scope子元素(3)runtime(运行时范围)runtime范围依赖在运行和测试系统时需要,但在编译时不需要。(4)test(测试范围)test范围依赖在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。不会随项目发布。(5)system(系统范围)system范围与provided范围类似,但需要显式提供包含依赖的JAR包,Maven不会在Repository中查找它。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.2.3使用IntelliJIDEA快速构建SpringBoot应用1.新建SpringProject打开IDEA通过选择菜单File->New->Project打开新建项目窗口。在新建项目窗口左侧选中SpringInitializr选项。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.选择项目依赖《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.编写测试代码packagecom.ch.ch13_1.test;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassTestController{@GetMapping("/hello")publicStringhello(){return"您好,SpringBoot!";}}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

4.应用程序的App类在应用ch13_1的com.ch.ch13_1包中,自动生成了应用程序的App类Ch131Application。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

5.运行main方法启动SpringBoot应用《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

6.测试SpringBoot应用启动SpringBoot应用后,默认访问地址为:http://localhost:8080/,将项目路径直接设为根路径,这是SpringBoot的默认设置。因此,我们可以通过http://localhost:8080/hello测试应用(hello与测试类TestController中的@GetMapping(“/hello”)对应)。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录13.1SpringBoot概述13.2第一个SpringBoot应用13.3SpringBoot的基本配置13.4读取应用配置13.5日志配置13.6SpringBoot的自动配置原理《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.3.1启动类和核心注解@SpringBootApplicationSpringBoot应用通常都有一个名为*Application的程序入口类,该入口类需要使用SpringBoot的核心注解@SpringBootApplication标注为应用的启动类。另外,该入口类有一个标准的Java应用程序的main方法,在main方法中通过“SpringApplication.run(*Application.class,args);”启动SpringBoot应用。SpringBoot的核心注解@SpringBootApplication是一个组合注解,主要组合了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.@SpringBootConfiguration注解@SpringBootConfiguration是SpringBoot应用的配置注解,该注解也是一个组合注解,源代码可以从spring-boot-x.y.z.jar依赖包中查看org/springframework/boot/SpringBootConfiguration.java。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.@EnableAutoConfiguration注解@EnableAutoConfiguration注解可以让SpringBoot根据当前应用项目所依赖的JAR包自动配置项目的相关配置。例如,在SpringBoot项目的pom.xml文件中添加了spring-boot-starter-web依赖,SpringBoot项目会自动添加Tomcat和SpringMVC的依赖,同时对Tomcat和SpringMVC进行自动配置。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.@ComponentScan注解该注解的功能是让SpringBoot自动扫描@SpringBootApplication所在类的同级包以及它的子包中的配置,所以建议将@SpringBootApplication注解的入口类放置在项目包中(GroupId+ArtifactId组合的包名),并将用户自定义的程序放置在项目包及其子包中,这样可以保证SpringBoot自动扫描项目所有包中的配置。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.3.2SpringBoot的全局配置文件SpringBoot的全局配置文件(perties或application.yml)位于SpringBoot应用的src/main/resources目录下。1.设置端口号在SpringBoot应用的src/main/resources目录下找到名为perties的全局配置文件,添加如下配置内容:server.port=8888可以将内嵌的Tomcat的默认端口改为8888。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.设置Web应用的上下文路径如果开发者想设置一个Web应用程序的上下文路径,可以在perties文件中配置如下内容:server.servlet.context-path=/XXX这时应该通过“http://localhost:8080/XXX/testStarters”访问如下控制器类中的请求处理方法:@GetMapping("/testStarters")publicStringindex(){}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.配置文档在SpringBoot的全局配置文件中,可以配置与修改多个参数,读者想了解参数的详细说明和描述可以查看官方文档说明:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.application-properties。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.3.3SpringBoot的StartersSpringBoot提供了许多简化企业级开发的“开箱即用”的Starters。SpringBoot项目只要使用所需要的Starters,SpringBoot即可自动关联项目开发所需要的相关依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>SpringBoot将自动关联Web开发的相关依赖,如tomcat、spring-webmvc等,进而对Web开发的支持,并将相关技术的配置实现自动配置。通过访问“https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.starters”官网,可以查看SpringBoot官方提供的Starters。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录13.1SpringBoot概述13.2第一个SpringBoot应用13.3SpringBoot的基本配置13.4读取应用配置13.5日志配置13.6SpringBoot的自动配置原理《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.4读取应用配置SpringBoot提供了三种方式读取项目的perties配置文件的内容。此三种方式分别为:Environment类、@Value注解以及@ConfigurationProperties注解。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.4.1EnvironmentEnvironment是一个通用的读取应用程序运行时的环境变量的类,可以通过key-value方式读取perties、命令行输入参数、系统属性、操作系统环境变量等。【例13-1】使用Environment类读取perties配置文件的内容。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.创建SpringBootWeb应用ch13_2使用IDEA快速创建SpringBootWeb应用ch13_2,同时给应用ch13_2添加如图13.6所示的依赖。在13.4.3节使用@ConfigurationProperties注解进行读取配置时,需要SpringConfigurationProcessor依赖。需要注意的是,使用Lombok时需要事先给IDEA安装Lombok插件。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.添加配置文件内容在应用ch13_2的src/main/resources目录下,找到全局配置文件perties,并添加如下内容:test.msg=readconfig《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.创建控制器类EnvReaderConfigController@RestControllerpublicclassEnvReaderConfigController{ @Autowired

privateEnvironmentenv; @GetMapping("/testEnv") publicStringtestEnv(){

return"方法一:"+env.getProperty("test.msg"); //test.msg为配置文件perties中的key }}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

启动与测试应用4.启动SpringBoot应用运行Ch132Application类的main方法,启动SpringBoot应用。5.测试应用启动SpringBoot应用后,默认访问地址为:http://localhost:8080/,将项目路径直接设为根路径,这是SpringBoot的默认设置。因此,我们可以通过http://localhost:8080/testEnv测试应用(testEnv与控制器类ReaderConfigController中的@GetMapping("/testEnv")对应)《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.4.2@Value使用@Value注解读取配置文件内容示例代码如下:@Value("${test.msg}")//test.msg为配置文件perties中的keyprivateStringmsg;//通过@Value注解将配置文件中key对应的value赋值给变量msg【例13-2】使用@Value注解读取配置文件内容。@RestControllerpublicclassValueReaderConfigController{

@Value("${test.msg}")privateStringmsg; @GetMapping("/testValue") publicStringtestValue(){

return"方法二:"+msg; }}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.4.3@ConfigurationProperties使用@ConfigurationProperties首先建立配置文件与对象的映射关系,然后在控制器方法中使用@Autowired注解将对象注入。【例13-3】使用@ConfigurationProperties读取配置文件内容。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.添加配置文件内容#nestSimplepropertiesobj.sname=chenhengobj.sage=88#Listpropertiesobj.hobby[0]=runningobj.hobby[1]=basketball#MapPropertiesobj.city.cid=dlame=dalian《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.建立配置文件与对象的映射关系@Component//使用Component注解,声明一个组件,被控制器依赖注入@ConfigurationProperties(prefix="obj")//obj为配置文件中key的前缀@DatapublicclassStudentProperties{ privateStringsname; privateintsage; privateList<String>hobby; privateMap<String,String>city; @Override publicStringtoString(){

return"StudentProperties[sname="+sname

+",sage="+sage

+",hobby0="+hobby.get(0)

+",hobby1="+hobby.get(1)

+",city="+city+"]";}}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.创建控制器类ConfigurationPropertiesController@RestControllerpublicclassConfigurationPropertiesController{

@Autowired StudentPropertiesstudentProperties; @GetMapping("/testConfigurationProperties") publicStringtestConfigurationProperties(){ returnstudentProperties.toString(); }}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.4.4@PropertySource可以使用@PropertySource注解找到项目的其他配置文件,然后结合13.4.1~13.4.3节中任意一种方式读取即可。【例13-4】使用@PropertySource+@Value读取其他配置文件内容。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

1.创建配置文件在ch13_2的src/main/resources目录下创建配置文件perties和perties,并在perties文件中添加如下内容:your.msg=hello.在perties文件中添加如下内容:my.msg=testPropertySource《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

2.创建控制器类PropertySourceValueReaderOhterController@RestController@PropertySource({"perties","perties"})publicclassPropertySourceValueReaderOhterController{

@Value("${my.msg}")privateStringmymsg;@Value("${your.msg}")privateStringyourmsg; @GetMapping("/testProperty") publicStringtestProperty(){ return"其他配置文件perties:"+mymsg+"<br>" +"其他配置文件perties:"+yourmsg; }}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

3.启动并测试应用《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录13.1SpringBoot概述13.2第一个SpringBoot应用13.3SpringBoot的基本配置13.4读取应用配置13.5日志配置13.6SpringBoot的自动配置原理《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.5日志配置默认情况下,SpringBoot项目使用LogBack实现日志,使用apacheCommonsLogging作为日志接口。@RestControllerpublicclassLogTestController{

privateLoglog=LogFactory.getLog(LogTestController.class); @GetMapping("/testLog") publicStringtestLog(){

("测试日志"); return"测试日志"; }}《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.5日志配置日志级别有ERROR、WARN、INFO、DEBUG和TRACE。SpringBoot默认的日志级别为INFO,日志信息可以打印到控制台。但开发者可以自己设定SpringBoot项目的日志输出级别,例如在perties配置文件中加入以下配置:#设定日志的默认级别为infologging.level.root=info#设定org包下的日志级别为warn=warn#设定com.ch.ch13_1包下的日志级别为debug.ch.ch13_1=debug《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.5日志配置SpringBoot项目默认并没有输出日志到文件,但开发者可以在perties配置文件中指定日志输出到文件,配置示例如下:logging.file=my.log日志输出到my.log文件,该日志文件位于SpringBoot项目运行的当前目录(项目工程目录下)。也可以指定日志文件目录,配置示例如下:logging.file=c:/log/my.log这样将在c:/log目录下生成一个名为my.log的日志文件。不管日志文件位于何处,当日志文件大小到达10MB时,将自动生成一个新日志文件。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录13.1SpringBoot概述13.2第一个SpringBoot应用13.3SpringBoot的基本配置13.4读取应用配置13.5日志配置13.6SpringBoot的自动配置原理《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

13.6SpringBoot的自动配置原理SpringBoot使用核心注解@SpringBootApplication将一个带有main方法的类标注为应用的启动类。@SpringBootApplication注解最主要的功能之一是为SpringBoot开启了一个@EnableAutoConfiguration注解的自动配置功能。@EnableAutoConfiguration注解主要利用了一个类名为AutoConfigurationImportSelector的选择器向Spring容器自动配置一些组件。@EnableAuto

温馨提示

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

评论

0/150

提交评论