Java学习第十三部分——Spring Boot
目录
一. 核心概念
二. 主要模块
三. Spring Boot
四. 优势
五. 应用
六.idea项目实战
1.打开idea,新建Spring Boot项目,配置如下图
2.紧接着,跳到添加依赖窗口,选择添加“Spring Boot DevTools”和“Spring Web”依赖
3.等待下载完成,大约15min
4.如果有示例代码,先编译运行一下,结果如下,一切正常
5.在 src/main/java/com/example/demo 目录下创建一个新的Java类 HelloController.java,项目结构及代码内容如下
6.在 src/main/java/com/example/demo 目录下创建一个新的Java类 DemoApplication.java,注意!如果已有示例代码,它会提醒不能创建同名文件,可以不需要拷贝代码这一步,因为代码一样的,项目结构及代码如下
7.打开浏览器访问 http://localhost:8080/hello,结果如下,结束!
七.拓展
(一)在创建Spring Boot项目的idea界面有个“类型”,下面详细介绍
(二)在创建Spring Boot项目若遇到以下错误
(三)关于idea项目实战第七步的思考
一. Spring核心概念
- **Spring **: 是一个开源的 Java 平台,它提供了全面的基础设施支持,用于开发 Java 应用程序。以下是关于 Spring 的一些关键信息:
- **控制反转(IoC)**:Spring 的核心是 IoC 容器,它负责创建对象、配置对象,并将它们组装在一起。通过 IoC,对象不再需要自己创建依赖,而是由 Spring 容器注入这些依赖,从而降低了类之间的耦合度。
- **面向切面编程(AOP)**:Spring 支持 AOP,允许开发者将横切关注点(如日志记录、事务管理、安全性等)与业务逻辑分离。通过 AOP,可以在不修改业务逻辑代码的情况下,动态地添加这些功能。
- **声明式事务管理**:Spring 提供了声明式事务管理,通过简单的注解(如 `@Transactional`)或 XML 配置,可以轻松地管理事务,而无需编写复杂的事务管理代码。
二. Spring主要模块
- **Spring Core**:提供了 IoC 容器的基本功能,包括 BeanFactory 和 ApplicationContext。
- **Spring Beans**:提供了 BeanFactory 的实现,用于管理 Bean 的生命周期和依赖注入。
- **Spring Context**:扩展了 Spring Core,提供了更高级的容器功能,如事件传播、国际化消息支持等。
- **Spring AOP**:提供了面向切面编程的支持,允许开发者定义切点、通知等。
- **Spring ORM**:提供了对常见 ORM 框架(如 Hibernate、JPA)的集成支持。
- **Spring Web**:提供了 Web 应用开发的支持,包括 Spring MVC 和 Spring WebFlux。
- **Spring Data**:提供了对数据访问的支持,简化了数据库操作,如 Spring Data JPA、Spring Data MongoDB 等。
- **Spring Security**:提供了安全功能,包括认证、授权、防止常见的安全攻击等。
三. Spring Boot
Spring Boot 是 Spring 的一个子项目,旨在简化 Spring 应用的初始搭建以及开发过程。它通过“约定大于配置”的理念,自动配置 Spring 和相关技术,从而让开发者能够快速上手。
- **主要特性**:
- **自动配置**:Spring Boot 会根据添加的依赖自动配置 Spring 应用。例如,添加 `spring-boot-starter-web` 依赖后,Spring Boot 会自动配置 Spring MVC 和嵌入式 Tomcat。
- **独立运行**:Spring Boot 应用内嵌了 Tomcat、Jetty 或 Undertow 等服务器,无需部署 WAR 文件。
- **无需 XML 配置**:Spring Boot 推荐使用 Java 配置,通过注解(如 `@SpringBootApplication`)来定义配置。
- **微服务支持**:Spring Boot 与 Spring Cloud 结合,可以快速构建微服务架构。
四. Spring优势
- **降低耦合度**:通过 IoC 和 AOP,Spring 可以将业务逻辑与依赖关系解耦,便于测试和维护。
- **提高开发效率**:Spring Boot 的自动配置功能减少了大量的配置工作,让开发者可以更专注于业务逻辑。
- **强大的生态系统**:Spring 拥有丰富的模块和插件,可以满足各种开发需求,如数据访问、安全、消息队列等。
- **易于测试**:Spring 的组件可以通过 Mock 对象进行单元测试,同时 Spring Boot 提供了测试支持,方便集成测试。
五. Spring应用
- **企业级应用开发**:Spring 是构建大型企业级应用的首选框架,其强大的功能和模块化设计可以满足各种复杂需求。
- **微服务架构**:Spring Boot 和 Spring Cloud 提供了构建微服务的完整解决方案,包括服务注册、配置管理、负载均衡等。
- **Web 应用开发**:Spring MVC 和 Spring WebFlux 提供了灵活的 Web 开发支持,适用于构建 RESTful API 和动态 Web 应用。
- **数据访问**:Spring Data 提供了对各种数据库的简化操作,支持 JPA、MongoDB、Redis 等。
六.idea项目实战
1.打开idea,新建Spring Boot项目,配置如下图
ps:Java和jdk版本选择合适的即可,不一定要24
2.紧接着,跳到添加依赖窗口,选择添加“Spring Boot DevTools”和“Spring Web”依赖
3.等待下载完成,大约15min
4.如果有示例代码,先编译运行一下,结果如下,一切正常
5.在 src/main/java/com/example/demo 目录下创建一个新的Java类 HelloController.java,项目结构及代码内容如下

package com.example.demo;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String sayHello() {return "Hello, Spring Boot!";}
}
6.在 src/main/java/com/example/demo 目录下创建一个新的Java类 DemoApplication.java,注意!如果已有示例代码,它会提醒不能创建同名文件,可以不需要拷贝代码这一步,因为代码一样的,项目结构及代码如下
package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}
7.打开浏览器访问 http://localhost:8080/hello,结果如下,结束!

七.拓展
(一)在创建Spring Boot项目的idea界面有个“类型”,下面详细介绍
1. Gradle - Groovy
-
Gradle 是一个构建自动化系统,它使用 Groovy 或 Kotlin 语言编写构建脚本。
-
Groovy 是一种基于 JVM 的动态语言,与 Java 兼容,可以无缝地与 Java 代码交互。
-
使用 Gradle 的 Groovy 脚本,你可以定义项目的构建逻辑,包括任务、依赖关系等。
-
Gradle 支持增量构建,这意味着它只会重新构建自上次构建以来发生变化的部分,从而提高构建速度。
-
Gradle 还支持依赖管理和多项目构建。
2. Gradle - Kotlin
-
与 Gradle - Groovy 类似,Gradle - Kotlin 使用 Kotlin 语言编写构建脚本。
-
Kotlin 是另一种基于 JVM 的静态类型语言,由 JetBrains 开发,旨在与 Java 完全兼容,同时提供更简洁和安全的代码。
-
Kotlin 脚本提供了类型安全和更现代的语言特性,如协程、扩展函数等,这使得构建脚本更加健壮和易于维护。
-
同样,Gradle - Kotlin 也支持增量构建和依赖管理。
3. Maven
-
Maven 是一个项目管理和构建工具,它使用 XML 格式的
pom.xml文件来描述项目的构建过程和依赖关系。 -
Maven 强调项目对象模型(POM),它定义了项目的基本信息、依赖、构建配置等。
-
Maven 使用标准的生命周期阶段(如 compile、test、package、install、deploy)来管理构建过程。
-
Maven 社区庞大,提供了大量的插件和预定义的构建配置(称为原型),这使得配置新项目变得简单。
-
Maven 同样支持依赖管理和多模块项目。
总结
Gradle 提供了更灵活和强大的构建配置,而 Maven 则提供了广泛的社区支持和标准化的构建流程。Kotlin 脚本为 Gradle 提供了更现代的语言特性,而 Groovy 则提供了与 Java 更紧密的集成。
(二)在创建Spring Boot项目若遇到以下错误
这个错误一般与网络连接问题有关,可能是由于网络不稳定、服务器响应慢或本地计算机的性能问题导致的。解决这个问题可能需要检查网络连接,或者尝试在网络状况更好的时候重新下载。
(三)关于idea项目实战第七步的思考
问:为什么不用tomcat?
答:Spring Boot的主要特性包括独立运行——即Spring Boot应用本身就内嵌了Tomcat等服务器,无需配置部署。

