下面我为你精心设计一个为期30天的学习路线图,并选择一个“在线图书商城”作为贯穿始终的项目案例,这个项目功能经典,技术栈全面,非常适合初学者。

学习路线图总览
- 核心目标: 独立完成一个功能相对完整的“在线图书商城”项目。
- 技术栈选择 (当前主流且企业常用):
- 后端: Java (JDK 8/11) + Spring Boot + Spring MVC + MyBatis-Plus
- 前端: Thymeleaf (服务端渲染,简化前端学习) + jQuery + Bootstrap
- 数据库: MySQL 8.0
- 构建工具: Maven
- 版本控制: Git
- 开发工具: IntelliJ IDEA
- 项目功能模块:
- 用户模块:注册、登录、个人信息管理、退出
- 商品模块:图书列表、图书详情、图书搜索
- 购物车模块:添加商品、查看购物车、修改数量、删除商品
- 订单模块:生成订单、查看订单列表、查看订单详情
- 后台管理模块:图书管理(增删改查)、订单管理、用户管理
详细30天学习计划
第一周:环境搭建与基础入门 (第1-5天)
目标: 搭建好所有开发环境,理解Java Web开发的基本流程,完成项目骨架。
-
第1天:环境准备与项目初始化
- 上午: 安装JDK、配置环境变量、安装MySQL 8.0、安装IntelliJ IDEA、安装Maven、安装Git。
- 下午: 使用IDEA创建一个Spring Boot项目,选择
Spring Web,Thymeleaf,MySQL Driver,MyBatis Framework等依赖,熟悉IDEA界面,配置好Maven的settings.xml,连接上本地MySQL数据库。 - 项目实践: 创建
bookstore数据库,在IDEA中配置好数据源,确保能成功连接。
-
第2天:数据库设计与实体类
- 上午: 学习数据库设计三范式,为“在线图书商城”设计数据库表结构,至少包括:
t_user(用户表),t_book(图书表),t_cart(购物车表),t_cart_item(购物车项表),t_order(订单表),t_order_item(订单项表)。 - 下午: 使用
Navicat或IDEA自带的数据库工具创建表和插入一些测试数据,根据数据库表,在Java项目中创建对应的实体类(POJO)。 - 项目实践: 完成所有表的创建和实体类的编写。
- 上午: 学习数据库设计三范式,为“在线图书商城”设计数据库表结构,至少包括:
-
第3天:MyBatis-Plus基础与配置
(图片来源网络,侵删)- 上午: 学习MyBatis-Plus的核心概念:
BaseMapper,@TableId,@TableName等注解,了解它如何简化CRUD操作。 - 下午: 在
application.yml中配置MyBatis-Plus,包括数据源、Mapper扫描路径、日志配置(开启STDOUT_LOGGING方便调试)。 - 项目实践: 为每个实体类创建对应的Mapper接口,并继承
BaseMapper<T>,测试一个简单的查询,例如通过ID查询一本书。
- 上午: 学习MyBatis-Plus的核心概念:
-
第4天:Spring MVC入门与Thymeleaf
- 上午: 学习Spring MVC的核心:
@Controller,@RequestMapping,@RequestParam,Model,理解请求和响应的流程。 - 下午: 学习Thymeleaf的基本语法:
th:text,th:href,th:each等,了解如何将Controller中的数据传递到HTML页面。 - 项目实践: 创建一个
BookController,编写一个方法来查询所有图书,并将图书列表传递给一个HTML页面进行展示。
- 上午: 学习Spring MVC的核心:
-
第5天:首页开发与静态资源引入
- 上午: 学习如何引入Bootstrap和jQuery等前端资源,设计并编写商城的首页(
index.html),包含导航栏、图书分类、推荐图书等模块。 - 下午: 使用Thymeleaf的
th:each循环在首页展示数据库中的图书列表。 - 项目实践: 完成一个美观、功能可用的首页,能正确显示图书列表。
- 上午: 学习如何引入Bootstrap和jQuery等前端资源,设计并编写商城的首页(
第二周:核心功能开发 (第6-12天)
目标: 完成用户模块和商品模块的核心业务逻辑。
-
第6天:用户注册功能
(图片来源网络,侵删)- 上午: 编写
UserController和UserService,实现用户注册的业务逻辑,包括数据校验(用户名、密码非空等)。 - 下午: 编写注册页面(
register.html),使用表单提交数据,学习如何处理表单提交,并在Service层将密码进行MD5加密后存入数据库。 - 项目实践: 完成用户注册功能,可以成功将用户信息存入数据库。
- 上午: 编写
-
第7天:用户登录与退出
- 上午: 实现用户登录逻辑,在Service层根据用户名查询用户,并校验密码,使用
HttpSession来保存登录状态。 - 下午: 编写登录页面(
login.html),实现登录成功后跳转到首页,并显示用户名,实现“退出”功能,即清除Session。 - 项目实践: 完成登录和退出功能,确保只有登录用户才能进行购物等操作(通过拦截器实现)。
- 上午: 实现用户登录逻辑,在Service层根据用户名查询用户,并校验密码,使用
-
第8天:图书详情页
- 上午: 在
BookController中添加一个方法,根据图书ID查询单本图书信息。 - 下午: 编写图书详情页(
item.html),展示图书的详细信息,并添加“加入购物车”的按钮。 - 项目实践: 从首页点击某本书,能跳转到对应的详情页。
- 上午: 在
-
第9天:购物车模块 - 添加商品
- 上午: 设计购物车数据结构,学习如何在Session中存储购物车信息(可以使用
Map<Book, Integer>)。 - 下午: 实现“加入购物车”的Controller逻辑,处理请求,将商品添加到Session中的购物车。
- 项目实践: 在图书详情页点击“加入购物车”,能成功将商品添加到购物车。
- 上午: 设计购物车数据结构,学习如何在Session中存储购物车信息(可以使用
-
第10天:购物车模块 - 查看与修改
- 上午: 编写一个Controller方法来展示购物车页面。
- 下午: 编写购物车页面(
cart.html),使用Thymeleaf遍历Session中的购物车数据,实现修改商品数量和删除商品的功能。 - 项目实践: 完成购物车的查看、修改数量、删除商品功能。
-
第11天:订单模块 - 生成订单
- 上午: 设计订单和订单项的实体类,编写
OrderController和OrderService。 - 下午: 实现生成订单的业务逻辑:从Session中获取购物车,创建订单和订单项,清空购物车,注意事务管理(
@Transactional)。 - 项目实践: 在购物车页面点击“生成订单”,能成功创建订单并跳转到订单成功页。
- 上午: 设计订单和订单项的实体类,编写
-
第12天:订单模块 - 查看订单
- 上午: 编写Controller方法来查询当前登录用户的所有订单。
- 下午: 编写订单列表页面(
order_list.html)和订单详情页面(order_detail.html)。 - 项目实践: 用户可以在“我的订单”中查看自己所有的订单,并能点击查看订单详情。
第三周:功能完善与后台管理 (第13-19天)
目标: 完善前端交互,开发后台管理功能。
-
第13天:图书搜索功能
- 上午: 在
BookController中添加一个方法,接收搜索关键词,使用MyBatis-Plus的条件构造器QueryWrapper进行模糊查询。 - 下午: 在首页的搜索框中添加表单,将搜索关键词提交到Controller。
- 项目实践: 实现一个基于书名的图书搜索功能。
- 上午: 在
-
第14天:分页功能
- 上午: 学习MyBatis-Plus的分页插件
PaginationInterceptor的配置和使用。 - 下午: 修改首页、商品列表页、后台图书列表等所有需要分页的地方,使用
Page<T>对象进行分页查询。 - 项目实践: 所有展示图书列表的地方都实现分页,每页显示固定数量(如10本)。
- 上午: 学习MyBatis-Plus的分页插件
