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