📜  Spring Boot——代码结构(1)

📅  最后修改于: 2023-12-03 15:05:16.023000             🧑  作者: Mango

Spring Boot——代码结构

Spring Boot 是一个快速开发框架,它为 Spring 应用程序开发和部署提供了新的方式。在使用 Spring Boot 进行开发时,代码结构是非常重要的。本文将介绍 Spring Boot 的代码结构,以及每个文件的作用。

1. 项目结构

Spring Boot 项目结构通常是标准的 Maven 结构。在 Maven 结构中,应用程序包含以下重要的目录和文件:

- src/main/java:应用程序源代码目录。
- src/main/resources:应用程序资源目录,例如 Spring 配置文件、静态资源等。
- src/test/java:测试代码目录。
- src/test/resources:测试资源目录。
- pom.xml:Maven 构建文件。
2. Spring Boot 启动类

Spring Boot 应用程序的入口点是一个带有 @SpringBootApplication 注解的 Java 类。这个类定义了应用程序的启动行为,并且可以配置应用程序上下文。下面是一个最简单的 Spring Boot 启动类示例:

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

这个主要有3个注解

1、@SpringBootApplication 是 Spring Boot 自动配置、Spring Bean定义、组件扫描等功能的集合。

2、@EnableAutoConfiguration 开启自动配置。

3、@ComponentScan 扫描注解的类。

3. 应用程序配置

Spring Boot 的配置是使用 application.propertiesapplication.yml 文件定义的。这些文件通常位于应用程序的 src/main/resources 目录下。

application.properties 格式:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=root
spring.datasource.password=root
...

application.yml 格式:

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost/test
    username: root
    password: root
  ...
4. 控制器

Spring Boot 控制器是用来处理 HTTP 请求和响应的。控制器通常位于应用程序的 src/main/java 目录下,它们使用 Spring Framework 提供的 @RestController@RequestMapping 注解来处理请求和响应。

@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Hello World!";
    }

}
5. 服务

服务是业务逻辑的重要部分。在 Spring Boot 中,服务是包含业务逻辑的 Java 类,通常被其他组件使用。

@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    ...
}
6. 存储库

存储库是用来访问数据存储的接口或类。在 Spring Boot 中,存储库可以使用 JpaRepository、CrudRepository 或者 MongoRepository 来访问关系型或非关系型数据库。

@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {

    ...
}
7. 实体类

实体类是对象的表示。在 Spring Boot 中,每个实体类通常都与数据库中的表相对应。实体类包含了表中的所有字段,以及它们的访问方法。

@Entity
@Table(name = "products")
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private Double price;

    ...
}
总结

本文介绍了 Spring Boot 的代码结构,以及每个文件的作用。学习这些内容将有助于您更好地理解 Spring Boot 应用程序。希望对您有所帮助!