<前文回顾>
<今日更新>
一、起步依赖:Spring Boot 的“懒人神器”
Spring Boot 的起步依赖[1],说白了就是“懒人神器”。它把一堆常用的依赖打包成一个“全家桶”,开发者只需要引入一个起步依赖,就能搞定一堆事儿。起步依赖的核心思想是“开箱即用”,开发者不用再为依赖冲突、版本兼容啥的“挠头”。
1. spring-boot-starter-web:Web 开发的“全家桶”
spring-boot-starter-web 是 Web 开发的“全家桶”,里头装着 Spring MVC、Tomcat、Jackson 啥的。有了它,开发者就能“躺平”开发 Web 应用了。
XML Code |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> |
2. spring-boot-starter-data-jpa:数据访问的“利器”
spring-boot-starter-data-jpa 是数据访问的“利器”,里头装着 Spring Data JPA、Hibernate 啥的。有了它,开发者就能“躺平”操作数据库了。
XML Code |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> |
3. spring-boot-starter-test:测试的“工具箱”
spring-boot-starter-test 是测试的“工具箱”,里头装着 JUnit、Mockito、Spring Test 啥的。有了它,开发者就能“躺平”写测试了。
XML Code |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> |
二、起步依赖的“历史”:从“手忙脚乱”到“躺平开发”
起步依赖的出现,让 JavaWeb 开发从“手忙脚乱”变成了“躺平开发”。起步依赖的历史,说白了就是 JavaWeb 开发的“进化史”。
1. 2014 年:Spring Boot 1.0 发布
2014 年,Spring Boot 1.0 发布,起步依赖的概念正式登场。起步依赖的出现,让 JavaWeb 开发变得更加简单。
2. 2016 年:Spring Boot 1.4 发布
2016 年,Spring Boot 1.4 发布,起步依赖的种类更加丰富,涵盖了 Web、数据访问、安全、消息队列等方方面面。
3. 2020 年:Spring Boot 2.3 发布
2020 年,Spring Boot 2.3 发布,起步依赖的性能更加优化,支持了更多的第三方库。
三、起步依赖的“骚操作”
1. 自定义起步依赖:从“拿来主义”到“自力更生”
Spring Boot 支持自定义起步依赖,能把自己的配置打包成起步依赖,方便其他项目使用。
XML Code |
<dependency> <groupId>com.example</groupId> <artifactId>my-starter</artifactId> <version>1.0.0</version> </dependency> |
2. 排除依赖:从“全家桶”到“按需取用”
Spring Boot 的起步依赖虽然“省心”,但有时候也得“挑挑拣拣”。可以用 exclusions 排除不需要的依赖。
XML Code |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> |
3. 依赖管理:从“手动”到“自动”
Spring Boot 的起步依赖通过 spring-boot-dependencies 管理依赖版本,开发者不用再为版本冲突“挠头”。
XML Code |
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.5.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> |
四、起步依赖的“实战演练”
1. 快速构建 Web 项目
用 spring-boot-starter-web 快速构建一个 Web 项目,只需要几行代码。
Java Code |
@SpringBootApplication @RestController public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } @GetMapping("/hello") public String hello() { return "Hello, World!"; } } |
2. 快速操作数据库
用 spring-boot-starter-data-jpa 快速操作数据库,只需要几行代码。
Java Code |
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age;
// getters and setters } public interface UserRepository extends JpaRepository<User, Long> { } @Service public class UserService { @Autowired private UserRepository userRepository;
public List<User> getAllUsers() { return userRepository.findAll(); } } |
3. 快速写测试
用 spring-boot-starter-test 快速写测试,只需要几行代码。
Java Code |
@SpringBootTest public class MyAppTest { @Autowired private UserService userService;
@Test public void testGetAllUsers() { List<User> users = userService.getAllUsers(); assertNotNull(users); } } |
五、起步依赖的“调校”
1. 修改默认配置:从“躺平”到“调校”
Spring Boot 的起步依赖虽然“省心”,但有时候也得“调校”一下。比如,修改 Tomcat 的端口号。
2. 自定义 Bean:从“默认”到“定制”
Spring Boot 的起步依赖虽然“开箱即用”,但有时候也得“定制”一下。比如,自定义一个 Bean。
Java Code |
@Bean public MyService myService() { return new MyService(); } |
3. 条件化配置:从“一刀切”到“按需配置”
Spring Boot 支持条件化配置,能用 @ConditionalOnProperty、@ConditionalOnClass 等注解,按需配置 Bean。
Java Code |
@Configuration @ConditionalOnProperty(name = "myapp.feature.enabled", havingValue = "true") public class MyFeatureConfiguration { @Bean public MyFeature myFeature() { return new MyFeature(); } } |
专有名词解释
- 起步依赖:Spring Boot 的核心特性之一,通过打包常用依赖简化项目配置。
- Spring Data JPA:Spring 提供的数据访问框架,简化了 JPA 的使用。
- JUnit:Java 的单元测试框架,Spring Boot 默认使用它进行测试。