第2章Spring Boot入门案例

1.1 开发步骤
在这里插入图片描述
1.1.2 指定GAV及pom配置信息
在这里插入图片描述

1.1.3 选择Spring Boot版本及依赖
会根据选择的依赖自动添加起步依赖并进行自动配置
在这里插入图片描述

1.1.4 修改Content Root路径及文件所在目录
在这里插入图片描述

点击Finish,第一次创建,在右下角会提示正在下载相关的依赖,Spring Boot2.1.2依赖的spring版本是5.1.4.RELEASE
1.1.5 对POM.xml文件进行解释

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <!--继承Spring Boot框架的一个父项目,所有自己开发的Spring Boot项目都必须继承-->
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.1.6.RELEASE</version>
      <relativePath/>
   </parent>
   <!--当前项目的GAV坐标-->
   <groupId>com.bjpowernode.springboot</groupId>
   <artifactId>02-springboot-first</artifactId>
   <version>1.0</version>

   <!--maven项目的描述,可以删除-->
   <name>02-springboot-first</name>
   <description>Demo project for Spring Boot</description>

   <!--maven的属性配置,可以在其它地方通过${}的方式进行引用-->
   <properties>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <!--SpringBoot框架web项目起步依赖,通过该依赖自动关联其它依赖,不需要我们一个个去配置了-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <!--测试的起步依赖,例如:junit测试,如果不需要测试,也可以删除-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <!--SpringBoot提供的打包编译等插件-->
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
</project>
<groupId>org.springframework.boot</groupId>

1.1.6 对SpringBoot项目结构进行说明

在这里插入图片描述
Ø .mvn|mvnw|mvnw.cmd:使用脚本操作执行maven相关命令,国内使用较少,可删除
Ø .gitignore:使用版本控制工具git的时候,设置一些忽略提交的内容Ø static|templates:后面模板技术中存放文件的目录
Ø application.properties:SpringBoot的配置文件,很多集成的配置都可以在该文件中进行配置,例如:Spring、springMVC、Mybatis、Redis等。目前是空的
Ø Application.java:SpringBoot程序执行的入口,执行该程序中的main方法,SpringBoot就启动了
1.1.7 创建一个Spring MVC的HelloSpringBootController

@Controller
public class HelloSpringBootController {
    @RequestMapping("/springBoot/sayHi")
    public @ResponseBody String sayHi(){
        return "hello,springBoot";
    }
}

注意:新创建的类一定要位于Application同级目录或者下级目录,否则SpringBoot加载不到。
1.1.8 在idea中右键,运行Application类中的main方法
通过在控制台的输出,可以看到启动SpringBoot框架,会启动一个内嵌的tomcat,端口号为8080,上下文根为空
在这里插入图片描述

1.1.9 在浏览器中输入http://localhost:8080/springBoot/sayHi访问

1.2 入门案例分析
Ø Spring Boot的父级依赖spring-boot-starter-parent配置之后,当前的项目就是Spring Boot项目
Ø spring-boot-starter-parent是一个Springboot的父级依赖,开发SpringBoot程序都需要继承该父级项目,它用来提供相关的Maven默认依赖,使用它之后,常用的jar包依赖可以省去version配置
Ø Spring Boot提供了哪些默认jar包的依赖,可查看该父级依赖的pom文件
Ø 如果不想使用某个默认的依赖版本,可以通过pom.xml文件的属性配置覆盖各个依赖项,比如覆盖Spring版本

<properties>
     <spring.version>5.0.0.RELEASE</spring.version>
</properties>

Ø @SpringBootApplication注解是Spring Boot项目的核心注解,主要作用是开启Spring自动配置,如果在Application类上去掉该注解,那么不会启动SpringBoot程序
Ø main方法是一个标准的Java程序的main方法,主要作用是作为项目启动运行的入口
Ø @Controller 及 @ResponseBody 依然是我们之前的Spring MVC,因为Spring Boot的里面依然是使用我们的Spring MVC + Spring + MyBatis 等框架
1.3 Spring Boot的核心配置文件
Spring Boot的核心配置文件用于配置Spring Boot程序,名字必须以application开始
1.1.1 配置格式
(1) .properties文件(默认采用该文件)
键值对的properties属性文件配置方式

# 配置内嵌tomcat的端口号
server.port=9090

# 配置项目的上下文根
server.servlet.context-path=/02-springboot-first

配置完毕之后,启动浏览器测试

(2) .yml文件
yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。
yaml 是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比xml 简洁很多,值与前面的冒号配置项必须要有一个空格, yml 后缀也可以使用 yaml 后缀
在这里插入图片描述

注意:当两种格式配置文件同时存在,使用的是.properties配置文件,为了演示yml,可以先将其改名,重新运行Application,查看启动的端口及上下文根

我们以后在授课的过程中,使用properties,所以演示完yml效果后,将该配置文件改名
在这里插入图片描述
在这里插入图片描述
1.3.1 多环境配置
在实际开发的过程中,我们的项目会经历很多的阶段(开发->测试->上线),每个阶段的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了方便在不同的环境之间切换,SpringBoot提供了多环境配置,具体步骤如下
Ø 为每个环境创建一个配置文件,命名必须以application-环境标识.properties|yml
在这里插入图片描述

Ø 在总配置文件application.properties进行环境的激活

# 总配置文件
# 配置开发环境
#spring.profiles.active=dev
# 配置测试环境
#spring.profiles.active=test
# 配置生产环境
spring.profiles.active=product

等号右边的值和配置文件的环境标识名一致,可以更改总配置文件的配置,重新运行Application,查看启动的端口及上下文根
1.3.2 Spring Boot自定义配置
在SpringBoot的核心配置文件中,除了使用内置的配置项之外,我们还可以在自定义配置,然后采用如下注解去读取配置的属性值
用于逐个读取application.properties中的配置
案例演示
Ø 在开发环境的配置文件applicatin-dev.properties中,添加两个自定义配置项school.name和school.website。在idea中可以看到这两个属性不能被SpringBoot识别,背景是桔色的

# 开发环境
# 配置内嵌tomcat的端口号
server.port=8080
server.port=8080
# 配置项目的上下文根
server.servlet.context-path=/02-springboot-first

Ø 在总配置文件application.properties中激活开发环境

# 总配置文件
# 配置开发环境
spring.profiles.active=dev
# 配置测试环境
#spring.profiles.active=test
# 配置生产环境
#spring.profiles.active=product

Ø 在HelloSpringBootController中定义属性,并使用@Value注解或者自定义配置值

@Value("${school.name}")
private String schoolName;

@Value("${school.website}")
private String schoolWebsite;

Ø 在HelloSpringBootController中定义方法,进行测试

@RequestMapping("/springBoot/getConfig")
public @ResponseBody String getConfig(){
    return schoolName + "::::" +schoolWebsite;
}

Ø 重新运行Application,在浏览器中进行测试
在这里插入图片描述

(1) @ConfigurationProperties
将整个文件映射成一个对象,用于自定义配置项比较多的情况
案例演示
Ø 在com.bjpowernode.springboot.config包下创建ConfigInfo类,并为该类加上Component和ConfigurationProperties注解,prefix可以不指定,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置,prefix的作用可以区分同名配置

@Component
@ConfigurationProperties(prefix="school")
public class ConfigInfo {
    private String name;
    private String website;
}//省略get|set方法

Ø 在HelloSpringBootController中注入ConfigInfo配置类

@Autowired
private ConfigInfo configInfo;

Ø 修改HelloSpringBootController类中的测试方法

@RequestMapping("/springBoot/getConfig")
public @ResponseBody String getConfig(){
    return schoolName + "::::" + schoolWebsite + "::::"
            + configInfo.getName() + "::::" + configInfo.getWebsite();
}

Ø 重新运行Application,在浏览器中进行测试
在这里插入图片描述

(2) 警告解决
Ø 在ConfigInfo类中使用了ConfigurationProperties注解后,idea会出现一个警告,不影响程序的执行
在这里插入图片描述

Ø 点击open documentnation跳转到网页,在网页中提示需要加一个依赖,我们将这个依赖拷贝,粘贴到pom.xml文件中

<!--解决使用@ConfigurationProperties注解出现警告的问题-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-configuration-processor</artifactId>
   <optional>true</optional>
</dependency>

(3) 中文乱码
如果在SpringBoot核心配置文件中有中文信息,会出现乱码:
n 一般在配置文件中,不建议出现中文(注释除外)
n 如果有,可以先转化为ASCII码
(4) 友情提示
大家如果是从其它地方拷贝的配置文件,一定要将里面的空格删干净
1.4 Spring Boot前端使用JSP
1.1.1 在pom.xml文件中配置以下依赖项

<!--引入Spring Boot内嵌的Tomcat对JSP的解析包,不加解析不了jsp页面-->
<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- servlet依赖的jar包start ,可选-->
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- servlet依赖的jar包start -->

<!-- jsp依赖jar包start ,可选-->
<dependency>
   <groupId>javax.servlet.jsp</groupId>
   <artifactId>javax.servlet.jsp-api</artifactId>
   <version>2.3.1</version>
</dependency>
<!-- jsp依赖jar包end -->

<!--jstl标签依赖的jar包start ,可选-->
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
</dependency>
<!--jstl标签依赖的jar包end -->

1.4.1 在pom.xml的build标签中要配置以下信息
SpringBoot要求jsp文件必须编译到指定的META-INF/resources目录下才能访问,否则访问不到。其实官方已经更建议使用模板技术(后面会讲模板技术)

<resources>  
   <resource>
      <!--源文件位置-->
      <directory>src/main/webapp</directory>
      <!--编译到META-INF/resources,该目录不能随便写-->
      <targetPath>META-INF/resources</targetPath>
      <includes>
         <!--要把哪些文件编译过去,**表示webapp目录及子目录,*.*表示所有-->
         <include>**/*.*</include>
      </includes>
   </resource>
</resources>

1.4.2 在application-dev.properties文件配置Spring MVC的视图展示为jsp,这里相当于Spring MVC的配置

# /相当于src/main/webapp目录
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

集成完毕之后,剩下的步骤和我们使用Spring MVC一样
1.4.3 在com.bjpowernode.springboot.controller包下创建JspController类,并编写代码

@Controller
public class JspController {
    @RequestMapping("/springBoot/jsp")
    public String jsp(Model model){
        model.addAttribute("data","Spring Boot 前端页面使用Jsp");
        return "index";
    }
}

1.4.4 在src/main 下创建一个webapp目录,然后在该目录下新建index.jsp页面
如果在webapp目录下右键,没有创建jsp的选项,可以在Project Structure中指定webapp为Web Resource Directory
在这里插入图片描述
1.4.5 在jsp中获取Controller传递过来的数据
在这里插入图片描述

1.4.6 重新运行Application,通过浏览器访问测试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B_Tony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值