寸阳分阴须爱惜,休负春色与时光。这篇文章主要讲述#yyds干货盘点#动力节点王鹤Springboot教程笔记Spring boot快速入门相关的知识,希望能为你提供帮助。
?
??第二章 Spring boot快速入门
- 官方下载地址
- 视频观看地址
1. 第一种方式: ??https://start.spring.io???
使用 spring boot提供的初始化器。 向导的方式,完成 spring boot 项目的创建: 使用
方便。
1.1 创建项目步骤step 1: 新建项目
?
?
?
step 4 : 最后创建项目,设置项目的目录位置
step 5: Spring Boot 项目目录结构
?
1.2 起步依赖
国内地址: 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 注解所在的类, 类所在的包和子包。
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 接口
?
运行主类,查看输出结果
【#yyds干货盘点#动力节点王鹤Springboot教程笔记Spring boot快速入门】
推荐阅读
- Spring认证中国教育管理中心-Spring Data Couchbase教程六
- Nginx 网站服务
- 精品SpringSecurity集成JWT#yyds干货盘点#
- 单页模板不适用于自定义帖子类型
- 列出特定类别的帖子标题的短代码
- 短代码在WordPress自定义主题中不起作用
- 在Woocommerce商店页面上将所有产品分开分类
- 在PHP echo中运行PHP()
- 在WordPress中激活主题激活函数