SpringBoot高性能后端项目实战课程-技术选型

77 阅读2分钟

由浅及深、层层递进完成高性能后端项目开发,在实战中全面掌握主流技术:SpringBoot、MySQL、Redis、RocketMQ、FastDFS、Elasticsearch、RestFulAPI、双token登录认证、RBAC权限控制、Docker、Git、SourceTree、Nginx、JWK等。 【SpringBoot高性能后端项目实战课程【开篇】】 www.bilibili.com/video/BV1xK…

技术选型

Spring Boot 2.x

Spring Boot 是一个基于 Spring Framework 的开源 Java 基于 Spring Framework 的开源 Java 应用程序开发框架,用于创建独立、生产级的基于 Spring Framework 的应用程序。Spring Boot 2.x 是其较新的版本,具有以下特点:

  • 自动配置:自动配置 Spring 和第三方库,简化开发。
  • 独立运行:内嵌 Tomcat、Jetty 等容器,无需部署 WAR 文件。
  • 简化配置:基于约定优于配置的原则,减少配置文件的编写。
  • 微服务支持:与 Spring Cloud 集成,支持微服务架构。

【精读Spring英文原版书籍:Spring实战】 www.bilibili.com/video/BV1Cu…

MySQL

MySQL 是一个开源的关系型数据库管理系统,广泛应用于 Web 应用开发中。它具有以下特点:

  • 高性能:支持高并发访问,适合处理大量数据。
  • 易用性:提供丰富的 SQL 语言支持,易于学习和使用。
  • 可扩展性:支持集群和分片,满足不同规模的应用需求。

【SQL必知必会,SQL入门必备术语,数据库入门必备知识】 www.bilibili.com/video/BV1AD…

【SQL实战训练营:房源评分统计】 www.bilibili.com/video/BV1HM…

【轻松学习SQL数据分析:在实战中学习SQL数据分析,轻松应对学习、工作】 www.bilibili.com/video/BV1JJ…

搜索引擎

【小而美开源搜索引擎MeiliSearch深度体验】 www.bilibili.com/video/BV1hK…

开发模式

1. 控制层(Controller 层)

控制层是应用程序的入口点,负责接收用户请求并调用服务层处理业务逻辑。它通常使用 Spring MVC 提供的注解来处理 HTTP 请求。例如:

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.saveUser(user);
    }
}
2. 服务层(Service 层)

服务层是业务逻辑的核心,负责处理业务规则和数据操作。它通常由控制层调用,并与数据层交互。例如:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }

    public User saveUser(User user) {
        userMapper.insert(user);
        return user;
    }
}
3. 数据层(Dao 层)

数据层负责与数据库交互,执行 SQL 语句。在 MyBatis 中,通常通过 Mapper 接口和 XML 文件来实现。例如:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM users WHERE id = #{id}")
    User selectById(Long id);

    @Insert("INSERT INTO users (name, email) VALUES (#{name}, #{email})")
    void insert(User user);
}

对应的 XML 文件:

<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectById" parameterType="long" resultType="User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    <insert id="insert" parameterType="User">
        INSERT INTO users (name, email) VALUES (#{name}, #{email})
    </insert>
</mapper>

项目结构示例

一个典型的基于 Spring Boot + MySQL + MyBatis + Maven 的项目结构可能如下:

my-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── com.example.controller/
│   │   │   │   └── UserController.java
│   │   │   ├── com.example.service/
│   │   │   │   └── UserService.java
│   │   │   ├── com.example.mapper/
│   │   │   │   └── UserMapper.java
│   │   │   ├── com.example.model/
│   │   │   │   └── User.java
│   │   │   └── com.example.config/
│   │   │       └── MyBatisConfig.java
│   │   ├── resources/
│   │   │   ├── application.yml
│   │   │   └── mybatis/
│   │   │       └── UserMapper.xml
│   │   └── webapp/
│   │       └── WEB-INF/
│   │           └── views/
│   └── test/
│       └── java/
│           └── com.example/
│               └── UserControllerTest.java
├── pom.xml