十五:java web(7)-- Spring Boot
目录
3.1 application.properties 和 application.yml 配置 这两种都可以 好像现在更推荐yml
4.2 spring-boot-starter-data-jpa
4.3 spring-boot-starter-thymeleaf
4.4 spring-boot-starter-security
4.5 spring-boot-starter-logging
4.7 spring-boot-starter-activemq
4.10 spring-boot-starter-actuator
-
1. Spring Boot 简介
-
1.1 简介
-
Spring Boot 是一个开源的 Java 框架,它简化了 Spring 应用的配置和部署过程。Spring Boot 提供了开箱即用的功能,可以大大减少开发人员的配置工作,并让开发人员专注于业务逻辑的实现。它通过内嵌的服务器(如 Tomcat 或 Jetty)使得 Java 应用可以像普通应用一样运行,不需要部署到外部的 Web 服务器。
-
Spring Boot 的目标是通过减少样板代码和简化配置,使得开发人员能够快速启动和开发 Spring 应用。它基于 Spring 框架,并与 Spring Cloud 深度集成,特别适用于微服务架构。
-
终于不需要再写 Spring 配置文件和 Bean 了,解脱!这些繁琐的配置和 Bean 定义让人头大,特别是在早期的 Spring 版本中,繁重的 XML 配置是让开发过程变得异常复杂。
-
-
1.2 Spring Boot 的特点
-
自动配置:Spring Boot 通过自动配置特性减少了显式配置的需求,很多常用的配置会自动根据应用环境进行推断,简化了配置过程。
-
独立运行:Spring Boot 可以嵌入常用的 Web 服务器(如 Tomcat、Jetty),不再需要外部容器,因此应用可以直接运行。
-
简化 Maven 配置:Spring Boot 提供了许多默认的 Maven 和 Gradle 配置,开发人员无需手动配置依赖。
-
生产级特性:Spring Boot 提供了如健康检查、度量监控、日志管理等生产环境必备功能。
-
微服务支持:与 Spring Cloud 无缝集成,提供了开发和部署微服务架构所需的各类工具。
-
快速开发:使用 Spring Boot 的快速开发特性,可以非常快速地构建和启动应用。
-
不依赖外部配置:Spring Boot 封装了很多常用的 Spring 配置,避免了很多繁琐的 XML 配置和类配置。
-
-
1.3 Spring Boot 和 Spring 的关系
-
Spring 和 Spring Boot 是两个不同的概念,Spring 是一个全面的企业级应用框架,提供了广泛的功能,包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问等。Spring Boot 则是在 Spring 框架的基础上,针对开发过程中复杂的配置和部署问题,提供了自动配置和快速启动的解决方案。
-
Spring 是一个功能强大但需要大量手动配置的框架,开发人员需要自己设置数据源、Web 容器等各种配置。
-
Spring Boot 则是基于 Spring 的开箱即用框架,它通过自动配置、内嵌 Web 服务器等特性,极大简化了开发过程。
-
因此,Spring Boot 可以看作是 Spring 的一种扩展和简化版本,它在 Spring 框架的基础上增加了许多默认配置和特性,使得开发人员不必重复编写常见的配置,从而更专注于业务代码的开发。
-
-
-
2. Spring Boot 快速入门
-
2.1 创建第一个 Spring Boot 项目
- 新建项目
- 如果没有java8
- 修改一下服务器URL:https://start.aliyun.com/
- 选择依赖项 点击创建
- 因为 依赖项选的不多 直接启动就可以了
- 前端访问接口
- 新建项目
-
-
3. Spring Boot 配置管理
-
3.1 application.properties 和 application.yml 配置 这两种都可以 好像现在更推荐yml
application.properties
配置application.properties
是基于键值对的配置文件,格式较为简单易懂。每一行表示一个配置项,使用=
或:
来分隔键和值。-
server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/lirui spring.datasource.username=root spring.datasource.password=root logging.level.org.springframework=INFO
-
application.yml
配置application.yml
是基于 YAML 格式的配置文件,支持层级结构,适合复杂配置,尤其是当有嵌套属性时更具可读性。-
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/lirui username: root password: root logging: level: org.springframework: INFO
-
-
3.2 配置文件的环境管理
-
Spring Boot 支持通过 环境配置 来管理不同环境下的配置。例如,可以为开发、测试和生产环境分别配置不同的
application.properties
或application.yml
文件。 -
使用
application-{profile}.properties
或application-{profile}.yml
Spring Boot 支持根据不同的 profile 使用不同的配置文件。例如,可以创建以下文件:-
application-dev.properties
或application-dev.yml
:开发环境的配置。 -
application-test.properties
或application-test.yml
:测试环境的配置。 -
application-prod.properties
或application-prod.yml
:生产环境的配置。
-
-
在
application.properties
或application.yml
中设置默认的 profile:-
spring.profiles.active=dev
-
-
配置文件优先级
-
application.properties
或application.yml
。 -
application-{profile}.properties
或application-{profile}.yml
(例如application-dev.properties
)。 -
配置文件中的配置项会覆盖较低优先级的配置。
-
-
通过
@Value
注解获取环境变量 Spring Boot 可以将配置文件中的属性注入到 Spring Bean 中。可以使用@Value
注解来读取配置文件中的值。-
@Value("${server.port}") private int serverPort;
-
-
通过
@ConfigurationProperties
绑定配置 如果配置项较多,可以通过@ConfigurationProperties
注解将配置项绑定到 Java 对象中。-
@ConfigurationProperties(prefix = "spring.datasource") @Component public class DataSourceConfig { private String url; private String username; private String password; // getters and setters }
-
-
-
-
4. 常用的 Starter 依赖
-
4.1 spring-boot-starter-web
-
用于构建 Web 应用,包括 RESTful API 服务。默认集成了 Tomcat 作为 Web 容器,支持 Spring MVC 和 Jackson(JSON 处理)。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
-
-
4.2 spring-boot-starter-data-jpa
-
用于集成 JPA 和 Hibernate,简化数据库操作,支持自动配置数据源。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
-
-
4.3 spring-boot-starter-thymeleaf
-
集成 Thymeleaf 模板引擎,用于构建基于服务器端渲染的 Web 应用。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
-
-
4.4 spring-boot-starter-security
-
提供基本的安全功能,如认证和授权功能。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
-
-
4.5 spring-boot-starter-logging
-
集成 SLF4J 和 Logback 提供日志功能,是默认的日志配置。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>
-
-
4.6 spring-boot-starter-test
-
用于集成测试框架,包括 JUnit、Mockito 和 Spring Test 等。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
-
-
4.7 spring-boot-starter-activemq
-
集成 ActiveMQ,用于消息队列功能。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
-
-
4.8 spring-boot-starter-mail
-
用于集成邮件发送功能,配置了 JavaMail API。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
-
-
4.9 spring-boot-starter-cache
-
提供缓存功能,支持多种缓存实现(如 Redis、EhCache 等)。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency>
-
-
4.10 spring-boot-starter-actuator
-
提供监控和管理功能,支持健康检查、指标、日志等功能。
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
-
-
-
5. 内嵌服务器与项目打包
-
5.1 内嵌服务器
-
Spring Boot 支持多种内嵌服务器,默认情况下使用 Tomcat,但也可以选择其他服务器,如 Jetty 或 Undertow。
-
5.1.1 默认内嵌 Tomcat
-
Spring Boot 默认使用 Tomcat 作为内嵌 Web 服务器。只需要添加
spring-boot-starter-web
依赖,Spring Boot 会自动引入 Tomcat 相关的依赖,并启动嵌入式的 Tomcat 服务器。 -
在默认情况下,Spring Boot 会使用 Tomcat 并将应用程序绑定到
localhost:8080
。你可以通过修改application.properties
或application.yml
配置文件来调整服务器端口。
-
-
5.1.2 选择其他内嵌服务器
-
Jetty
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
-
-
Undertow
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency>
-
-
5.1.3 修改内嵌服务器的配置
-
如果需要定制内嵌服务器的配置,可以通过
application.properties
或application.yml
来修改。例如,修改 Tomcat 服务器的连接数或最大线程数: -
server.tomcat.max-threads=200
-
-
-
5.2 项目打包
-
Spring Boot 支持将项目打包成 JAR 文件或 WAR 文件,方便部署。默认情况下,Spring Boot 会将项目打包成一个 可执行 JAR 文件,可以直接通过命令行启动。
-
5.2.1 JAR 包打包
-
pom.xml
-
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
-
-
执行打包
-
-
5.2.2 WAR包打包
-
如果你希望将应用打包为 WAR 文件(比如为了部署到外部 Tomcat 等容器中),需要在
pom.xml
中进行一些配置调整,并实现SpringBootServletInitializer
类。 -
pom.xml
-
<packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
-
-
启动类
-
@SpringBootApplication public class MyApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MyApplication.class); } }
-
-
-
-
原文地址:https://blog.csdn.net/pasaxiaorui/article/details/143569407
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!