mirror of
https://github.com/Estom/notes.git
synced 2026-04-27 03:51:03 +08:00
2.7 KiB
2.7 KiB
1 简介
Spring Boot 是基于 Spring 框架基础上推出的一个全新的框架, 旨在让开发者可以轻松地创建一个可独立运行的,生产级别的应用程序。利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。
Springboot的优势
- 能够轻松、方便地创建一个 Spring 应用;
- 直接使用内嵌的 Tomcat, Jetty, Undertow 容器(无需再手动安装容器,通过部署 WAR 包的方式);
- 内部自动管理各种 Jar 包的版本依赖关系,再也不用为版本冲突而烦恼啦;
- 自动化配置 Spring 相关功能,以及第三方库;
- 提供诸如指标,健康检查, 外部化配置等功能;
- "零配置",再也不需要手写地狱般的 XML 配置了;
2 相关特性
REST风格
控制反转
面向切面
3 工程结构
推荐工程结构
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
| +- CustomerController.java
|
- root package:com.example.myproject,所有的类和其他package都在root package之下。
- 应用主类:Application.java,该类直接位于root package下。通常我们会在应用主类中做一些框架配置扫描等配置,我们放在root package下可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容
- com.example.myproject.domain包:用于定义实体映射关系与数据访问相关的接口和实现
- com.example.myproject.service包:用于编写业务逻辑相关的接口与实现
- com.example.myproject.web:用于编写Web层相关的实现,比如:Spring MVC的Controller等
Spring Boot的应用主类会自动扫描root package以及所有子包下的所有类来进行初始化。
非典型结构下的初始化
- 使用@ComponentScan注解指定具体的加载包
@SpringBootApplication
@ComponentScan(basePackages="com.example")
public class Bootstrap {
public static void main(String[] args) {
SpringApplication.run(Bootstrap.class, args);
}
}
- 使用@Bean注解来初始化。在主类中进行初始化。
@SpringBootApplication
public class Bootstrap {
public static void main(String[] args) {
SpringApplication.run(Bootstrap.class, args);
}
@Bean
public CustomerController customerController() {
return new CustomerController();
}
}