springboot串讲。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
### Spring与Spring Boot 关键知识点概述
#### 一、Spring框架基础
**Spring框架的优点**:
1. **轻量级**:Spring是一个轻量级的容器框架,这意味着它占用资源较少,不会对应用程序造成额外负担。
2. **无侵入性**:Spring的设计原则之一就是非侵入性,即它不会强迫开发者编写特定于框架的代码,而是让开发者能够专注于业务逻辑。
3. **IoC容器**:Spring的核心是IoC(Inversion of Control,控制反转)容器,它帮助管理对象之间的依赖关系,通过面向接口编程降低模块间的耦合度。
4. **AOP(Aspect Oriented Programming,面向切面编程)**:Spring支持AOP特性,这使得开发者可以方便地在不修改代码的情况下为现有功能添加额外的行为,符合开闭原则(Open-Closed Principle,OCP)。
**Spring的Bean注入方式**:
- **XML配置**:传统的Spring配置方式,通过XML文件定义Bean及其依赖关系。
- **Java Annotation**:现代Spring推荐的方式,使用注解来声明Bean和依赖关系,这种方式更加简洁。
**常用的Spring注解**:
- `@Value`:用于注入`application.properties`中的配置值。
- `@Autowired`:用于自动装配Bean,可以应用于字段或方法上。
- `@Bean`:用于定义Bean,通常在配置类中使用。
- `@Service`:用于标记服务层组件。
- `@Configuration`:标记配置类,告诉Spring这是一个配置类。
- `@ComponentScan`:用于指定Spring扫描的包,以便自动发现并加载被注解的组件。
- `@HttpServiceMethod`:自定义注解,用于处理HTTP服务请求。
#### 二、Spring Boot 特点
**Spring Boot的特点**:
1. **约定优于配置**:Spring Boot通过一系列约定来减少配置,从而简化开发过程。
2. **独立Spring应用**:可以创建一个可独立运行的Spring应用,不需要额外的部署过程。
3. **嵌入式容器**:Spring Boot可以嵌入Tomcat或Jetty等Web服务器,无需部署WAR包。
4. **简化构建配置**:对于Maven和Gradle项目,Spring Boot提供了大量的依赖管理和自动配置,简化了构建过程。
5. **自动化配置**:Spring Boot尽可能地自动化配置Spring,减少手动配置的复杂性和出错可能。
#### 三、Spring Boot 集成配置
**Spring Boot与Spring MVC集成**:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
此依赖包含了Spring Web MVC和嵌入式Servlet容器的支持。
**MyBatis集成**:
```xml
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
```
在`config/DatasourceConfig.java`中配置数据源。
**Redis/Kafka集成**:
```java
@Bean(name="redisClient")
public RedisService redisClient() {
RedisServiceImpl redisService = new RedisServiceImpl();
redisService.setRedisAddr(address);
redisService.init();
return redisService;
}
```
在`config/HttpServiceConfig.java`中配置HTTP服务。
**Thrift集成**:
在`config/ThriftServiceConfig.java`中配置Thrift服务。
#### 四、代码规范
**分层设计**:
1. **API层**:处理HTTP请求和响应,负责接口的定义和服务的调用。
2. **BizService层**:实现业务逻辑。
3. **Core层**:包含DAO层,用于数据访问操作;Service层,封装核心业务逻辑。
**异常与日志处理**:
- 不应忽略异常,关键路径中必须捕获异常并记录日志。
- 定义明确的业务异常代码,以便于错误处理和日志分析。
- API层应记录每个接口调用的时间、参数和返回结果。
#### 五、打包与部署
**部署环境**:
- 开发环境(dev)
- 测试环境(co)
- 生产环境(prod)
**关键文件**:
- 应用程序的主要配置文件,如`application.properties`或`application.yml`。
- 其他必要的配置文件,如日志配置文件、安全配置文件等。
以上是Spring与Spring Boot的一些关键知识点,这些知识点对于理解和使用这两个框架非常重要。通过对这些概念的理解,开发者可以更好地利用Spring Boot的特性来快速构建稳定可靠的Web应用。