Spring Boot快速入门(一)
-
springboot概述
官方描述:Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring. Spring Boot takes an opinionated view of building production-ready applications.
意思是:Spring Boot旨在尽可能快地启动和运行,只需最少的Spring前端配置。Spring Boot对构建生产就绪应用程序持批评态度。 -
什么是Spring Boot?
Spring Boot可以轻松创建可以运行的独立,生产及的给予spring的应用程序,可以快速上手,大多数springboot应用程序只需要很少的spring配置。
可以使用Spring Boot创建使用java -jar或者更传统的war部署启动java应用程序。 -
spring的优点
1、为所有spring开发提供从根本上更快且可以访问的入门体验。
2、开箱即用
3、提供大型项目(例如嵌入式服务器、安全性、度量标准、运行状况检查和外部化配置)通用的一系列非功能性功能。
4、绝对没有代码生成,也不需要xml配置。 -
Spring Boot快速搭建
1、第一步:新建项目
选择 Spring Initializr ,然后选择默认的 url 点击【Next】:
然后修改一下项目的信息
勾选上 Web 模板:
选择好项目的位置,点击【Finish】:
如果是第一次配置 Spring Boot 的话可能需要等待一会儿 IDEA 下载相应的 依赖包,默认创建好的项目结构如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705085616959.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RmZ2FrbGRzamts,size_16,color_FFFFFF,t_70
默认生成文件的作用:
- SpringbootApplication: 一个带有 main() 方法的类,用于启动应用程序
- SpringbootApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
- application.properties:一个空的 properties 文件,可以根据需要添加配置属性
- pom.xml: Maven 构建说明文件
2、第二步:Helloword
在【com.sbksrm.springboot】包下新建一个【helloword】,在【helloword】包下新建一个HellowordController
package com.sbksrm.springboot.helloword;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HellowordController {
@RequestMapping("/hello")
public String hello() {
return "HelloWord";
}
}
@RestController = @Controller + @ResponseBody
3、第三步:利用 IDEA 启动 Spring Boot
我们回到 SpringbootApplication 这个类中,然后右键点击运行
注意:我们之所以在上面的项目中没有手动的去配置 Tomcat 服务器,是因为 Spring Boot 内置了 Tomcat
等待一会儿就会看到下方的成功运行的提示信息:
可以看到我们的 Tomcat 运行在 8080 端口,我们来访问 “/hello” 地址试一下:
- 解析 Spring Boot 项目
1、解析 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>
<groupId>cn.wmyskxz</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
可以看到一个陌生的标签:<parent>
这个标签是配置Spring Boot的父级依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
有了这个,当前的项目才是Spring Boot项目,spring-boot-starter-parent是一个特殊的starter,他用来提供相关的maven默认依赖,他使用它以后,常用的包依赖就可以省略version标签。
2、应用入口
Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Java 应用的入口方法。
@SpringBootApplication是Spring Boot的核心注解,他是一个组合注解,该注解组合了:@configuration,@EnableAutoConfiguration、@ComponentScan;若不是用@SpringBootApplication注解也可以使用者三个注解代替。
- 其中,@EnableAutoConfiguration让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置,例如,添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,娜姆Spring Boot会对Tomcat和Spring MVC进行自动配置。
- Spring Boot还会自动扫描@SpringBootApplication所在类的同级包以及下级包里的Bean,所以入欧类建议就配置在grounpID+actifactID组合报名下
配置文件
Spring Boot使用一个全局的配置文件application.properties或application.yml,放置[src/main/resources]目录或者类路径/config下。
Spring Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。
我们同样的将 Tomcat 默认端口设置为 8080 ,并将默认的访问路径从 “/” 修改为 “/hello” 时,使用 properties 文件和 yml 文件的区别如上图。
注意: yml 需要在 “:” 后加一个空格,幸好 IDEA 很好地支持了 yml 文件的格式有良好的代码提示;
我们可以自己配置多个属性
我们直接把 .properties 后缀的文件删掉,使用 .yml 文件来进行简单的配置,然后使用 @Value 来获取配置属性
重启 Spring Boot ,输入地址:http://localhost:8881/textValue 能看到正确的结果
注意: 我们并没有在 yml 文件中注明属性的类型,而是在使用的时候定义的。
问题: 这样写配置文件繁琐而且可能会造成类的臃肿,因为有许许多多的 @Value 注解。
封装配置信息
我们可以把配置信息封装成一个类,首先在我们的 name 和 age 前加一个 student 前缀,然后新建一个 StudentProperties 的类用来封装这些信息,并用上两个注解:
@Component:表明当前类是一个 Java Bean
@ConfigurationProperties(prefix = “student”):表示获取前缀为 sutdent 的配置信息
Spring Boot 热部署
在目前的Spring Boot项目中,当发生了任何修改之后我么都需要重启项目再能生效。Spring Boot提供了热部署的方式,当发现任何类发生了改变,就会通过JVM类加载的方式,加载最新的类发生到虚拟机中,这样就不需要重新启动也能生效。
只需要在pom.xml中添加一个依赖就行了:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
Spring Boot 使用
1、Spring Boot 支持 JSP
Spring Boot 的默认视图支持是 Thymeleaf 模板引擎,但是这个我们不熟悉啊,我们还是想要使用 JSP 怎么办呢?
-
.第一步:修改 pom.xml 增加对 JSP 文件的支持
<!-- servlet依赖. --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!-- tomcat的支持.--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
-
第二步:配置试图重定向 JSP 文件的位置
修改 application.yml 文件,将我们的 JSP 文件重定向到 /WEB-INF/views/ 目录下
-
第三步:修改 HelloController
-
第四步:新建 hello.jsp 文件
-
第五步:刷新网页
继承MyBits -
第一步: 修改 pom.xml 增加对 MySql和 MyBatis 的支持
!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency>
-
第二步:新增数据库链接参数
-
第三步:创建实体和映射类
资源下载:https://download.csdn.net/download/dfgakldsjkl/11584359