第二章 Spring boot疾速入门

官网下载地址

能源节点springboot材料

视频观看地址

https://www.bilibili.com/vide...

1、第一种形式: https://start.spring.io

应用spring boot提供的初始化器。向导的形式,实现spring boot我的项目的创立:使用方便。

1.1 创立我的项目步骤

step 1: 新建我的项目

step 4 : 最初创立我的项目,设置我的项目的目录地位

step 5: Spring Boot 我的项目目录构造

1.2 起步依赖

2、第二种形式,应用springboot 提供的初始化器,应用的国内的地址

国内地址:https://start.springboot.io

创立我的项目的步骤同上

3、第三种形式 应用maven 向导创立我的项目

创立一个一般 maven 我的项目

批改我的项目的目录

增加 Spring Boot 依赖

创立启动类:退出@SpringBootApplication 注解

3.1 入门案例

3.2 入门案例剖析

3.3 重要注解

@SpringBootApplication :@SpringBootApplication是一个复合注解 ,是由

@SpringBootConfiguration, @EnableAutoConfiguration ,@ComponentScan联结在一起组

成的。

@SpringBootConfiguration :就 是@Configuration 这个注解的性能,应用

@SpringBootConfiguration 这个注解的类就是配置文件的作用。

@EnableAutoConfiguration:开启主动配置,把一些对象退出到 spring 容器中。

@ComponentScan: 组件扫描器,扫描注解,依据注解的性能,创立java bean,给属性赋值 等等。组件扫描器默认扫描的是 @ComponentScan 注解所在的类, 类所在的包和子包。

4、Spring Boot 外围配置文件

Spring Boot 的外围配置文件用于配置 Spring Boot 程序,名字必须以application 开始

4.1 .properties 文件(默认采纳该文件)

在 002-springboot-springmvc 我的项目根底上,进行批改

项目名称: 003-springboot-port-context-path

通过批改 application.properties 配置文件, 在批改默认 tomcat 端口号及我的项目高低文件根 键值对的 properties 属性文件配置形式

启动利用, 在浏览器拜访 http://localhost:9092/boot/

4.2 .yml 文件

项目名称: 005-springboot-yml,在之前我的项目根底之上

yml 是一种 yaml 格局的配置文件,次要采纳肯定的空格、换行等格局排版进行配置。 yaml 是一种直观的可能被计算机辨认的的数据序列化格局,容易被人类浏览, yaml 类 似于 xml,然而语法比 xml 简洁很多,值与后面的冒号配置项必须要有一个空格, yml 缀也能够应用 yaml 后缀

留神 : 当两种格局配置文件同时存在 ,在 SpringBoot2.4 开始, 应用的是yml 配置文件.

批改配置名称都为 application。

从新运行 Application ,查看启动的端口及上下文根

举荐应用yml格局配置文件

4.3 多环境配置

在理论开发的过程中,咱们的我的项目会经验很多的阶段(开发->测试->上线),每个阶段

的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了不便在不同的环境 之间切换, SpringBoot 提供了多环境配置,具体步骤如下

项目名称: 006-springboot-multi-environment

为每个环境创立一个配置文件,命名必须以 application-环境标识.properties|yml

application.properties

application-dev.properties

application-product.properties

application-test.properties

4.4 Spring Boot 自定义配置

SpringBoot 的外围配置文件中,除了应用内置的配置项之外,咱们还能够在自定义配 置,而后采纳如下注解去读取配置的属性值

4.4.1 @Value 注解

@Value("${key}") ,key来自application.properties (yml)

application.properties:增加两个自定义配置项 school.name和

school.website。在IDEA中能够看到这两个属性不能被SpringBoot辨认,背景是桔色的

读取配置文件数据

@RequestMapping("/hello") @ResponseBody public String doHello(){ return "hello, port:" + port + "学校: "+name+",网站: "+site ; } }

启动利用 Application , 拜访浏览器

4.4.2 @ConfigurationProperties

项目名称: 008-springboot-custom-configuration

将整个文件映射成一个对象,用于自定义配置项比拟多的状况

案例演示

在com.bjpowernode.springboot.config 包下创立 SchoolInfo 类,并为该类加上 Component 和 ConfigurationProperties 注解,prefix 能够不指定,如果不指定,那么会去配置文件中寻找与该类的属性名统一的配置,prefix 的作用能够辨别同名配置

创立 SchoolController

执行 Application , 拜访浏览器查看数据

4.4.3 正告解决

➢ 在 SchoolInfo 类中应用了 ConfigurationProperties 注解,IDEA 会呈现一个正告,不影响程序的执行

➢ 点击 open documentnation 跳转到网页, 在网页中提醒须要加一个依赖,咱们将这个依赖拷贝,粘贴到pom.xml文件中

<!--解决应用@ConfigurationProperties 注解呈现正告问题--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>

4.4.4 中文乱码

如果在 SpringBoot 外围配置文件中有中文信息,会呈现乱码:

◼ 个别在配置文件中, 不倡议呈现中文(正文除外)

◼ 如果有,能够先转化为 ASCII 码

4.4.5 提醒

大家如果是从其它中央拷贝的配置文件, 肯定要将外面的空格删洁净

5. Spring Boot 中应用 JSP

5.1 在pom.xml 文件中配置以下依赖项

5.2 在 pom.xml 的 build 标签中要配置以下信息

SpringBoot 要求 jsp 文件必须编译到指定的 META-INF/resources 目录下能力拜访,否则

拜访不到。其实官网曾经更倡议应用模板技术(前面会讲模板技术)

<!— SpringBoot 要求 jsp 文件必须编译到指定的      META-INF/resources 目录下能力拜访, 否则拜访不到。其它官网曾经倡议应用模版技术(前面会课程会独自解说模版技术)--> <resources> <resource> <!--源文件地位--> <directory>src/main/webapp</directory> <!--指定编译到META-INF/resource,该目录不能轻易写--> <targetPath>META-INF/resources</targetPath><!--指定要把哪些文件编译进去, **示意webapp 目录及子目录, *.*示意所有文件--><includes> <include>**/*.*</include></includes></resource></resources>

5.3 在 application.properties 文件配置 Spring MVC 的视图展现为jsp, 这里相当于 Spring MVC 的配置

配置 SpringMVC 的视图解析器 其中: /相当于 src/main/webapp 目录 spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp

集成结束之后,剩下的步骤和咱们应用 Spring MVC 一样

5.4 在com.bjpowernode.springboot.controller 包下创立JspController类,并编写代码

@Controller   public class SpringBootController {       @RequestMapping(value = "/springBoot/jsp") public String jsp(Model model) {       model.addAttribute("data","SpringBoot 前端应用 JSP页面! ");   return "index" ;   } }

5.5 在 src/main 下创立一个 webapp 目录, 而后在该目录下新建index.jsp 页面

如果在webapp 目录下右键,没有创立 jsp 的选项,能够在Project Structure 中指定webapp 为 Web Resource Directory

5.6 在 jsp 中获取 Controller 传递过去的数据

5.7 从新运行 Application, 通过浏览器拜访测试

6.Spring Boot 中应用 ApplicationContext

在 main 办法中 SpringApplication.run()办法获取返回的 Spring 容器对象, 再获取业务 bean 进行调用.

创立 Spring Boot 我的项目: 010-springboot-container

指定我的项目的 gav 和版本等信息

抉择依赖:

创立一个接口 UserService 和他的实现类

创立启动类, main 办法中获取容器对象

7.CommandLineRunner 接口

开发中可能会有这样的情景。须要在容器启动后执行一些内容。比方读取配置文件,数 据库连贯之类的。 SpringBoot 给咱们提供了两个接口来帮忙咱们实现这种需要。这两个接口 别离为 CommandLineRunner 和 ApplicationRunner。他们的执行机会为容器启动实现的时候。

这两个接口中有一个 run 办法,咱们只须要实现这个办法即可。这两个接口的不同之处

在于:ApplicationRunner中run办法的参数为ApplicationArguments,而CommandLineRunner

接口中run办法的参数为String数组

创立Spring Boot我的项目,不必选依赖,或者批改010-springboot-container

创立 SomeService 接口和实现类,定义 sayHello()办法

实现 CommandLineRunner 接口

运行主类,查看输入后果