type
Post
date
status
Published
slug
summary
tags
category
icon
password
Parent item
Sub-item
在一个典型的Spring Boot项目中,通常会遵循一种标准的项目结构,以便组织和管理代码。下面是一个常见的Spring Boot项目结构示例:
src - main - java - com.example.project - controller // 控制器层,处理请求和响应 - service // 服务层,处理业务逻辑 - repository // 数据访问层,与数据库交互 - model // 数据模型层,定义实体类和数据传输对象 - exception // 异常处理 - config // 配置类,包括Spring配置和其他配置 - Application.java // 项目启动入口 - resources - static // 静态资源,如CSS、JavaScript等 - templates // 视图模板,如Thymeleaf、Freemarker等 - application.properties // 项目配置文件 - test - java // 测试代码 - com.example.project - controller - service - repository - model - ApplicationTests.java // 单元测试入口 - pom.xml // Maven项目配置文件
上述项目结构的说明如下:
src/main/java:Java源代码文件夹,包含了项目的主要代码。
com.example.project:项目的根包名,根据实际情况进行命名。
controller:控制器层,负责处理请求和响应。
service:服务层,处理业务逻辑。
repository:数据访问层,与数据库交互。
model:数据模型层,定义实体类和数据传输对象。
exception:异常处理,用于处理自定义的异常。
config:配置类,包括Spring配置和其他配置。
Application.java:项目的启动入口,包含main方法。
src/main/resources:资源文件夹,包含了配置文件和静态资源。
static:静态资源文件夹,存放图片、CSS、JavaScript等文件。
templates:视图模板文件夹,存放 Web 页面的模板文件,如Thymeleaf、Freemarker等。
application.properties:项目的配置文件,如 服务端口、数据库配置、日志配置等。
src/test/java:测试代码文件夹,包含了单元测试和集成测试的代码。
com.example.project:项目测试代码的根包名,与主代码包结构相同。
controller:控制器层的测试代码。
service:服务层的测试代码。
repository:数据访问层的测试代码。
model:数据模型层的测试代码。
ApplicationTests.java:项目的单元测试入口。
pom.xml:Maven项目配置文件,包含了项目的依赖管理和构建配置。
2.2 创建一个Spring MVC的Spring Boot Controller
在Spring Boot中,我们通常使用Controller来处理HTTP请求。这些Controller类通常会包含一个或多个公开的方法,这些方法会被映射到特定的HTTP请求。现在,让我们来创建一个简单的Spring MVC Controller。
首先,我们需要创建一个新的Java类。在Spring Boot中,Controller通常会被放在一个名为controller的包中。因此,我们可以创建一个名为GreetingController的新类,路径为src/main/java/com/example/demo/controller/GreetingController.java。
然后,我们需要为这个类添加@Controller注解,以告诉Spring这是一个Controller类。同时,我们还需要为这个类添加一个或多个公开的方法,这些方法会被映射到特定的HTTP请求。例如,我们可以添加一个greeting方法,它会被映射到/greeting的GET请求:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting() {
return "Hello, Spring Boot!";
}
}在上面的代码中,@GetMapping注解告诉Spring当一个GET请求被发送到/greeting时,应该调用greeting方法。greeting方法返回的字符串(在这个例子中是"Hello, Spring Boot!")将会被用作HTTP响应的主体。
2.3 深入理解Spring Boot Controller的工作机制
首先,我们需要理解的是,Spring Boot应用程序在启动时,会自动扫描所有的Java类,并查找包含特定注解的类。在我们的例子中,GreetingController类被@Controller注解修饰,因此,Spring Boot会把它识别为一个Controller,并把它加入到Spring的应用上下文中。
其次,每一个公开的方法都可以被映射到一个或多个HTTP请求。在我们的例子中,greeting方法被@GetMapping注解修饰,这意味着它会响应所有发送到/greeting的GET请求。当一个匹配的请求被接收时,Spring MVC会自动调用这个方法,并把方法的返回值作为HTTP响应的主体。在我们的例子中,greeting方法返回的是"Hello, Spring Boot!",因此,当我们访问http://localhost:8080/greeting时,我们会看到这个字符串。
最后,我们需要理解的是,Spring MVC的工作方式极大地简化了Web应用程序的开发。在传统的Java Web应用程序中,我们需要手动解析HTTP请求,并根据请求的内容生成HTTP响应。而在Spring MVC中,这一切都被自动化了。我们只需要定义Controller和方法,然后用注解来描述它们应该如何响应HTTP请求,剩下的工作就交给Spring MVC来处理了。
2.4 Spring Boot核心配置文件解析
在Spring Boot应用中,大部分的配置信息都存储在application.properties或application.yml文件中。这些配置文件通常位于src/main/resources目录下,Spring Boot会在启动时自动加载这些配置文件。现在,我们就来详细解析一下这些配置文件的格式。
2.4.1 application.properties
application.properties是最常用的配置文件格式,它采用“键=值”的格式来存储配置信息。例如server.port=8081
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass在上面的配置文件中,
server.port配置了应用程序的运行端口,而spring.datasource.*配置了数据源的连接信息。2.4.2 application.yml
另一种常用的配置文件格式是
application.yml,它采用YAML(YAML Ain’t Markup Language)语言来描述配置信息。YAML的语法更加简洁,更适合描述复杂的数据结构。例如,上面的配置信息在application.yml中可以写成server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost/test
username: dbuser
password: dbpass2.4.3 自定义配置
除了Spring Boot内置的配置项之外,我们还可以在
application.properties或application.yml中添加自定义的配置项。例如,我们可以添加一个app.message的配置项:app.message=Hello, Spring Boot!然后,我们可以在任意一个Spring Bean中注入这个配置项:
@Value("${app.message}")
private String message;在在上面的代码中,
@Value注解告诉Spring要把app.message的值注入到message变量中。- 作者:NotionNext
- 链接:https://tangly1024.com/article/15971045-1c88-80af-8ba8-ed59ef480614
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



