SpringBoot知识日常巩固(一)
-
什么是SpringBoot?
SpringBoot是一个简化应用程式开发的框架。它的主要目标是减少SpringBoot应用程序的配置和开发复杂性,使我们能够更快地构建、测试和部署Spring应用。简单来说它通过提供默认配置、自动化配置和嵌入式服务器等功能,简化了传统 Spring应用的繁琐配置过程。有人将一些依赖关系、默认配置都梳理好了,我们直接一个引用就搞定了,这就是它的本质。
-
Spring Boot 和 Spring MVC 有什么区别?
Spring MVC 是 Spring 框架中的一个模块,专注于构建基于 MVC(模型-视图-控制器)架构的 Web 应用程序。
功能:提供了构建 Web 应用所需的所有基础设施,包括请求处理、视图解析、数据绑定、验证等。
配置:需要手动配置,包括配置文件(XML 或 Java 配置)和注解。
依赖管理:需要手动管理项目依赖。
应用范围:只关注 Web 层,不包括数据访问、安全性、消息传递等其他方面的配置。
Spring Boot 是基于 Spring 框架的微框架,旨在简化 Spring 应用的创建、配置和部署。
功能:提供了创建独立、生产级别的 Spring 应用所需的所有功能,包括自动配置、内嵌服务器、监控和管理等。
配置:自动配置,通过类路径中的 jar 包依赖和项目配置文件来推断出需要的 Bean 和配置。
依赖管理:提供了一个依赖管理系统,可以简化 Maven 和 Gradle 的依赖配置。
应用范围:不仅包括 Web 层,还包括数据访问、安全性、消息传递等其他方面的配置。
区别:
范围:Spring MVC 只关注 Web 层,而 Spring Boot 提供了创建整个 Spring 应用所需的所有功能。
配置:Spring MVC 需要手动配置,而 Spring Boot 提供了自动配置。
依赖管理:Spring MVC 需要手动管理项目依赖,而 Spring Boot 提供了依赖管理系统。
应用类型:Spring MVC 通常用于构建 Web 应用,而 Spring Boot 可以用于构建任何类型的 Spring 应用,包括 Web 应用、微服务、RESTful Web 服务等。
总的来说,Spring Boot 是一个更全面的框架,它包含了 Spring MVC 的功能,并且提供了更多的便利和自动化,使得创建和配置 Spring 应用变得更加简单和快速。
-
Spring Boot 的核心特性有哪些?
Spring Boot 是一个流行的 Java 框架,用于简化 Spring 应用程序的创建和部署。以下是 Spring Boot 的一些核心特性:
-
自动配置(Auto-configuration):
Spring Boot 根据添加的 jar 依赖自动配置 Spring 应用程序。例如,如果添加了spring-boot-starter-web
依赖,Spring Boot 会自动配置 Tomcat 和 Spring MVC。 -
内嵌服务器(Embedded Server):
Spring Boot 内置了 Tomcat、Jetty 或 Undertow,无需部署到外部服务器即可运行 Spring 应用程序。 -
依赖管理(Dependency Management):
Spring Boot 提供了对 Maven 和 Gradle 的依赖管理支持,简化了依赖管理过程。 -
无代码生成和 XML 配置(No Code Generation and XML Configuration):
Spring Boot 鼓励使用 Java 配置类和注解,而不是 XML 配置文件。 -
应用监控(Application Monitoring):
Spring Boot 集成了 Spring Boot Actuator,提供了应用监控和管理的功能。 -
外部化配置(Externalized Configuration):
支持从外部文件(如application.properties
或application.yml
)加载配置,便于环境之间的迁移。 -
生产就绪的特性(Production-ready features):
提供了如指标、健康检查、外部化配置等生产环境的特性。 -
命令行工具(Command Line Tool):
提供了一个命令行工具,可以快速生成 Spring Boot 项目的基础结构。 -
无状态和可重用(Stateless and Reusable):
Spring Boot 应用程序是无状态的,可以轻松地在不同环境中重用。 -
微服务支持(Microservices Support):
Spring Boot 非常适合构建微服务架构的应用,提供了构建分布式系统的基础设施支持。
这些特性使得 Spring Boot 成为一个强大且灵活的框架,可以快速创建独立的、生产级别的 Spring 应用程序。
-
Spring Boot 是如何通过 main 方法启动 web 项目的?
Spring Boot 通过 main
方法启动 Web 项目的过程可以分解为以下几个关键步骤:
-
创建 Spring Boot 应用:
-
使用 Spring Initializr( IDE 插件创建一个新的 Spring Boot 项目。
-
添加
spring-boot-starter-web
依赖,它包含了构建 Web 应用所需的所有依赖,包括 Spring MVC 和内嵌的 Tomcat 服务器。
-
-
编写主应用程序类:
-
创建一个带有
@SpringBootApplication
注解的主应用程序类。这个注解是一个组合注解,包含了@Configuration
、@EnableAutoConfiguration
和@ComponentScan
,用于启动 Spring 应用上下文。 -
在这个类中定义
main
方法,它是应用程序的入口点。
-
-
编写控制器:
-
创建一个或多个控制器类,使用
@RestController
注解标记这些类。 -
在控制器类中定义处理 HTTP 请求的方法,使用
@RequestMapping
或其他请求映射注解来映射 URL 到方法。
-
-
运行应用程序:
-
运行主应用程序类中的
main
方法。Spring Boot 会自动配置和启动内嵌的 Tomcat 服务器(或其他支持的服务器),并根据@SpringBootApplication
注解启动 Spring 应用上下文。
-
-
访问 Web 应用:
-
一旦应用启动,你可以通过浏览器或工具(如 curl 或 Postman)访问
http://localhost:8080/
(默认端口是8080),看到控制器中定义的响应。
-
下面是一个简单的示例代码:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
public class WebApplication {public static void main(String[] args) {SpringApplication.run(WebApplication.class, args);}
}@RestController
class HelloController {@GetMapping("/")public String home() {return "Hello, Spring Boot Web Application!";}
}
在这个示例中,WebApplication
类是主应用程序类,它包含了 main
方法。HelloController
类是一个控制器,它定义了一个处理根 URL (/
) 的 home
方法。当你运行 WebApplication
类的 main
方法时,Spring Boot 会自动启动内嵌的 Tomcat 服务器,并提供一个简单的 Web 应用,你可以通过访问 http://localhost:8080/
来看到 "Hello, Spring Boot Web Application!" 的响应。
Spring Boot 通过简化配置和自动配置,使得启动一个 Web 应用变得非常简单。你只需要添加必要的依赖,创建一个带有 @SpringBootApplication
注解的主应用程序类,定义控制器,然后运行 main
方法即可。Spring Boot 会处理剩下的工作,包括启动内嵌的 Web 服务器和应用上下文。