# 项目及概念
# 常见的概念
# 什么是Spring
Spring是一个开源的Java框架,它提供了一种简单、灵活的方式来开发Java应用程序。Spring框架提供了许多功能,如依赖注入、事务管理、数据访问层、Web框架等,这些功能使得开发人员可以更快地开发出功能强大、可扩展的应用程序。
Spring是如何简化Java开发的
- 基于
POJO的轻量级和最小侵入性编程,所有东西都是bean; - 通过
IOC,依赖注入(DI)和面向接口实现松耦合; - 基于切面(
AOP)和惯例进行声明式编程;
# 什么是Spring Boot
Spring Boot是一个基于Spring框架的简化配置和启动的框架。它提供了一种快速、简单的方式来创建独立的、生产级别的Spring应用程序。Spring Boot通过自动配置和嵌入式服务器,使得开发人员可以快速地启动和运行应用程序,而无需进行繁琐的配置。
Spring Boot的主要特性
- 自动配置:
Spring Boot可以根据应用程序的类路径和配置文件,自动配置应用程序的配置; - 嵌入式服务器:
Spring Boot可以嵌入一个嵌入式服务器(如Tomcat、Jetty或Undertow),使得开发人员可以快速地启动和运行应用程序; - 简化配置:
Spring Boot提供了一种简单的方式来配置应用程序,使得开发人员可以快速地启动和运行应用程序; - 生产就绪:
Spring Boot提供了一些生产就绪的功能,如监控、健康检查、日志记录等,使得开发人员可以快速地部署和维护应用程序。
# 什么是Spring Cloud
Spring Cloud是一个基于Spring Boot的微服务架构解决方案。它提供了一系列的组件和工具,使得开发人员可以快速地构建和部署微服务应用程序。Spring Cloud的主要组件包括服务发现、配置管理、负载均衡、断路器、分布式追踪等。
Spring Cloud的主要特性
- 服务发现:
Spring Cloud提供了一种简单的方式来发现和注册服务,使得服务之间可以相互通信; - 配置管理:
Spring Cloud提供了一种简单的方式来管理应用程序的配置,使得配置可以动态地更新; - 负载均衡:
Spring Cloud提供了一种简单的方式来实现负载均衡,使得应用程序可以更好地利用资源; - 断路器:
Spring Cloud提供了一种简单的方式来实现断路器,使得应用程序可以更好地处理故障; - 分布式追踪:
Spring Cloud提供了一种简单的方式来实现分布式追踪,使得开发人员可以更好地理解应用程序的行为。
# 什么是Spring MVC
Spring MVC是一个基于Spring框架的Web框架。它提供了一种简单、灵活的方式来开发Web应用程序。Spring MVC基于模型-视图-控制器(MVC)设计模式,使得开发人员可以更好地组织和管理应用程序的代码。
Spring MVC的主要特性
- 基于注解的配置:
Spring MVC提供了一种简单的方式来配置应用程序,使得开发人员可以快速地启动和运行应用程序; - 视图解析:
Spring MVC提供了一种简单的方式来解析视图,使得开发人员可以快速地渲染页面; - 表单处理:
Spring MVC提供了一种简单的方式来处理表单数据,使得开发人员可以快速地处理用户输入;
# 常见目录结构
springboot项目目录结构
springboot
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── DemoApplication.java # 主应用程序类
│ │ │ ├── controller
│ │ │ │ └── DemoController.java # 控制器类
│ │ │ ├── service
│ │ │ │ └── DemoService.java # 服务类
│ │ │ └── model
│ │ │ │ └── Demo.java # 模型类
│ │ │ │__ filter # 放置一些过滤、拦截相关的代码
│ │ │ │__ aspect # 放置切面代码
│ │ │ │__ annotation # 放置项目自定义注解
│ │ │ │__ mapper #放置数据访问层代码接口
│ │ │ │__ config # 放置配置类
│ │ │ │__ utils # 放置工具类和辅助代码
│ │ │ │__ constant #放置常量、枚举等定义
│ │ └── resources
│ │ ├── mapper #存放mybatis的XML映射文件(如果是mybatis项目)
│ │ ├── application.yml # 应用程序配置文件
│ │ ├── static # 静态资源目录
│ │ └── templates # 模板文件目录
│ └── test
│ └── java
│ └── com
│ └── example
│ └── demo
│ └── DemoApplicationTests.java # 测试类
└── pom.xml # Maven项目配置文件