Springboot2笔记核心技术——1.基础入门
目录
1.spring和springboot的区别
1. 框架 vs. 工具
2. 配置方式
3. 启动方式
4. 项目结构
5. 生态系统
2.SpringBoot2入门
1. 创建项目
2. 项目结构
3. 编写主类
4. 添加Controller
5. 配置应用
6. 启动应用
7. 测试应用
8. 进一步学习
3.了解自动配置原理
1. Spring Boot 特点
1.1 依赖管理
1.2 自动配置
2. 容器功能
2.1 使用注解完成容器功能
2.2 原生配置文件引入
3. 自动配置原理入门
3.1 引导加载自动配置类
3.2 按需开启自动配置项
3.3 定制化修改自动配置
3.4 最佳实践
4. 开发小技巧
4.1 Lombok
4.2 Spring Initializr
4.3 DevTools
1.spring和springboot的区别
1. 框架 vs. 工具
- Spring:一个全面的Java框架,提供了丰富的功能(如IoC、AOP等),需要手动配置和管理。
- Spring Boot:基于Spring的框架,旨在简化Spring应用的创建和配置,提供开箱即用的配置。
2. 配置方式
- Spring:需要大量的XML或Java配置,配置复杂且繁琐。
- Spring Boot:采用约定优于配置,默认提供许多配置,减少了手动配置的需求。
3. 启动方式
- Spring:通常需要一个Servlet容器(如Tomcat)来部署和运行。
- Spring Boot:可以直接运行独立的Spring Boot应用,内嵌Servlet容器,简化了部署过程。
4. 项目结构
- Spring:项目结构不固定,开发者需要自行设计。
- Spring Boot:推荐的项目结构明确,有助于更快速地构建和管理项目。
5. 生态系统
- Spring:更为广泛,涵盖了众多模块和功能。
- Spring Boot:专注于快速开发和简化配置,常与Spring Cloud等工具结合使用。
2.SpringBoot2入门
1. 创建项目
- 使用Spring Initializr(https://start.spring.io/)生成项目:
- 选择项目类型(Maven或Gradle)。
- 选择Spring Boot版本(如2.x)。
- 添加所需的依赖(如Spring Web、Spring Data JPA等)。
- 点击“Generate”下载项目压缩包。
2. 项目结构
解压缩后,项目结构如下:
src
└── main
├── java
│ └── com
│ └── example
│ └── demo
│ └── DemoApplication.java
└── resources
├── application.properties
3. 编写主类
在DemoApplication.java
中,添加主方法:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
4. 添加Controller
创建一个简单的REST Controller:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
5. 配置应用
在application.properties
中进行基本配置:
server.port=8080
6. 启动应用
使用以下命令启动应用:
./mvnw spring-boot:run # Maven
# 或者
./gradlew bootRun # Gradle
7. 测试应用
在浏览器中访问 http://localhost:8080/hello
,您应该能看到 "Hello, Spring Boot!" 的响应。
8. 进一步学习
- 数据库集成:可以使用Spring Data JPA与数据库交互。
- 安全性:引入Spring Security进行安全控制。
- 微服务架构:结合Spring Cloud构建微服务。
3.了解自动配置原理
1. Spring Boot 特点
1.1 依赖管理
- 简化依赖管理:Spring Boot使用
spring-boot-starter
依赖管理来简化库的引入。通过starter
依赖,您可以轻松引入与特定功能相关的所有依赖,如Spring Web、Spring Data等。
1.2 自动配置
- 自动配置:Spring Boot可以根据项目中的依赖自动配置应用,减少手动配置的需求,提升开发效率。自动配置类通过条件注解进行控制。
2. 容器功能
2.1 使用注解完成容器功能
-
@Configuration
- 用于定义一个或多个
@Bean
方法的类,以表示Spring的配置类。
- 用于定义一个或多个
-
@Bean、@Component、@Controller
- @Bean:用于定义Spring管理的Bean,通常在
@Configuration
类中使用。 - @Component:用于标识一个Spring组件,Spring会自动扫描并注册。
- @Controller:用于定义一个控制器,主要用于处理请求。
- @Bean:用于定义Spring管理的Bean,通常在
-
@ComponentScan、@Import
- @ComponentScan:用于指定包路径,自动扫描并注册组件。
- @Import:用于导入其他配置类。
-
@Conditional
- 用于在满足特定条件时,才注册Bean。
2.2 原生配置文件引入
- @ImportResource
- 允许您导入传统的XML配置文件,使得Spring Boot可以与旧的Spring应用兼容。
3. 自动配置原理入门
3.1 引导加载自动配置类
- Spring Boot使用
@EnableAutoConfiguration
注解来启动自动配置,通过spring.factories
文件加载自动配置类。
3.2 按需开启自动配置项
- 您可以通过在
application.properties
或application.yml
文件中配置spring.autoconfigure.exclude
来排除特定的自动配置。
3.3 定制化修改自动配置
- 您可以自定义Bean以覆盖默认的自动配置,从而实现定制化。
3.4 最佳实践
- 熟悉自动配置原理和条件注解,可以更好地利用Spring Boot的强大功能。
4. 开发小技巧
4.1 Lombok
- Lombok是一个可以简化Java代码的库,通过注解生成常用的方法(如getter、setter、构造函数等),减少样板代码。
4.2 Spring Initializr
- Spring Initializr是一个在线工具,可以快速生成Spring Boot项目,选择依赖和项目配置,省去繁琐的手动设置。
4.3 DevTools
- Spring Boot DevTools提供热部署功能,支持自动重启和快速开发调试,提升开发效率。