Springboot(一)——入门
本章重点:
1.什么是Springboot;
2.使用Springboot搭建web项目;
一、Springboot
1.Springboot产生的背景
Servlet->Struts2->Spring->SpringMVC,技术发展过程中,对使用者来说越来越简单,成本越来越低。
假设让你使用Spring开发一个简单的Hello World Web应用程序,你该做什么?
- 一个项目结构,其中有一个包含必要依赖的Maven构建文件,最起码要有Spring MVC和Servlet API这些依赖。
- 一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
- 一个启用了Spring MVC的Spring配置。
- 一个控制器类,以“Hello World”响应HTTP请求。
- 一个用于部署应用程序的Web应用服务器,比如Tomcat。
最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用样板。既然所有Spring Web应用程序都要用到它们,那为什么还要你来提供这些东西呢?
问题:Spring框架存在了大量的xml配置文件和依赖关系,为了解决这些问题,出现了Springboot框架。
2.什么是Springboot
随着动态语言的流行(Ruby、Groovy、Scala、 Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境下,Spring Boot应运而生。
Spring Boot是Spring平台的一个全新的框架。目的是简化Spring框架应用中的初始化搭建和开发过程。Spring Boot基于Spring4进行的设计。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。
3.Spring Boot核心功能
- 独立运行的Spring项目
Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需通过java–jar xx.jar来运行。 - 内嵌Servlet容器
Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样我们无须以war包形式部署项目。 - 提供starter简化Maven配置
Spring提供了一系列的starter pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web时,会自动加入如图1-1所示的依赖包。
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]((%E4%B8%80&pos_id=img-WVg6WQBE-1709293695144)入门.assets/S1 (0).png) - 自动配置Spring
Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置Bean,而Spring Boot没有提供支持,则可以自定义自动配置。 - 准生产的应用监控
Spring Boot提供基于http、ssh、telnet对运行时的项目进行监控。 - 无代码生成和xml配置
Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,在3.5节有过简单的演示,本章将用大量的篇幅讲解Spring Boot实现的核心技术。
Spring 4.x提倡使用Java配置和注解配置组合,而Spring Boot不需要任何xml配置即可实现Spring的所有配置。
4.使用Sptingboot的好处
- 快速构建项目,无需xml配置文件;
- 无需手动管理jar包的依赖关系,使用Maven来进行统一管理;
- 无需外部服务器,有内置的tomcat服务器,可以直接启动项目;
- 配置热部署和自动启动;
- 对主流开发框架的无配置集成;
- 提供运行时的应用监控;
- 极大地提高了开发、部署效率;
- 与云计算的天然集成。
二、使用Springboot搭建web项目
1.创建项目maven项目;
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]((%E4%B8%80&pos_id=img-CHHxOazC-1709293695148)入门.assets/S1 (1).png)
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]((%E4%B8%80&pos_id=img-MdfkKYWh-1709293695149)入门.assets/S1 (2).png)
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]((%E4%B8%80&pos_id=img-ij2T0ygb-1709293695150)入门.assets/S1 (3).png)
2.在pom.xml文件中添加Springboot依赖关系
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
3.创建Springboot项目的启动类
注:启动类必须在最外层
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]((%E4%B8%80&pos_id=img-D5zoq37i-1709293695153)入门.assets/S1 (4).png)
4.编写Controller层
@RestController
public class FirstController {
@RequestMapping("hello")
public String hello(){
return "Hello";
}
}
@RestController标注这个程序是一个控制器,在浏览器中访问应用目录/hello,返回字符串”Hello“。
5.启动服务进行访问
http://localhost:8080/test/hi
springboot内置tomcat默认端口号为8080,项目路径“”
一个控制器,在浏览器中访问应用目录/hello,返回字符串”Hello“。
5.启动服务进行访问
http://localhost:8080/test/hi
springboot内置tomcat默认端口号为8080,项目路径“”