一个基础的SpringBoot项目应该包含以下几个部分:
1. 项目结构
一般来说,一个Spring Boot 项目的包结构应该包含三个主要部分:application、config 和 controller。
- application: 启动类的所在包,在 Spring Boot 项目中只能有一个,一般放在项目的根目录下。
- config: 配置类所在的包,这里包括常规配置类,比如Swagger的配置类等。
- controller: 控制器类所在的包,用来处理 HTTP 请求。
整个项目的主要结构如下:
project
├── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ ├── Application.java
│ │ ├── config
│ │ │ └── SwaggerConfig.java
│ │ └── controller
│ │ ├── HelloController.java
│ │ └── ...
│ └── resources
│ ├── application.yml
│ └── ...
└── pom.xml
2. 依赖配置
Spring Boot 是一个快速开发框架,它提供了大量的优秀的依赖包,使用的时候,只需在 pom.xml 文件中声明需要的依赖即可。
对于一个基础的 Spring Boot 项目,需要准备的依赖包至少应包括如下:
<dependencies>
<!--Spring Boot核心依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--Spring Boot Web支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Spring Boot 集成MyBatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--MySQL Spring Boot Starter-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--Swagger API文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
3. 配置启动类
Spring Boot 应用的入口是一个包含 main 方法的类。通常我们称之为启动类。在启动类中,我们可以添加一系列注解来配置 Spring Boot 应用的一些属性。
比如:
@SpringBootApplication
@EnableSwagger2
@MapperScan("com.example.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在这个启动类中,我们通过@SpringBootApplication注解将其标注为Spring Boot应用的入口,并通过@EnableSwagger2注解开启Swagger API文档功能,而通过@MapperScan注解来配置mybatis的Mapper接口所在的包。
4. 配置控制器
控制器是 Spring Boot 应用中最为重要的组件之一。它们定义了应用程序的行为,并处理 HTTP 请求。在 Spring Boot 中,我们只需编写简单的 POJO 就可以完成控制器的定义,以及让请求和响应与它们对应的方法相关联。
示例一:
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public Map<String, String> sayHello() {
Map<String, String> result = new HashMap<>();
result.put("hello", "world");
return result;
}
}
在这个示例中,我们通过 @RestController注解标记这是一个基于 RESTful 风格的控制器,并通过@RequestMapping("/api")注解来映射 URL。
而通过@GetMapping("/hello")注解定义了一个映射到"/api/hello"路径的GET请求处理方法,最后返回了一个包含“hello”和“world”的Map。
示例二:
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
@PostMapping("/user")
public User createUser(@RequestBody User user) {
return userService.createUser(user);
}
}
在这个示例中,我们通过@Autowired注解将UserService注入进来。通过@GetMapping和@PostMapping注解分别定义了Get和Post请求处理方法,并通过@PathVariable和@RequestBody注解分别获取和解析出请求中的参数。
最后通过调用UserService的方法来完成对User对象的操作。
5. 编写配置文件
Spring Boot 应用通过一种称为外部化配置的方式来减小构建和部署应用的复杂性。可以将应用程序所需的配置信息放在单独的文件中(如 application.properties 或 application.yml)。
示例一:使用.properties配置文件:
# MySQL数据库配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
# Mybatis配置
mybatis.mapper-locations=classpath:com/example/mapper/*.xml
mybatis.type-aliases-package=com.example.model
示例二:使用.yml配置文件:
# MySQL数据库配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
username: root
password: 123456
# Mybatis配置
mybatis:
mapper-locations: classpath:com/example/mapper/*.xml
type-aliases-package: com.example.model
通过这些配置文件,我们可以定义应用程序的常规配置,比如数据库连接、端口设置、日志级别、语言设置、缓存策略等。
以上就是一个基础的 Spring Boot 项目应该包含的方方面面,希望对您了解 Spring Boot 项目的创建有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈一个基础的SpringBoot项目该包含哪些 - Python技术站