第二章 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 接口
运行主类,查看输入后果