以下是关于SpringBoot开源项目黑马程序员博客系统的解压与查看:
下载好后解压到你所需建好的文件夹中:
完成后打开,里面都有这些文件,并将sql.zip解压到当前文件夹中
接下我我们启动IDEA,在设置中配置好Maven的路径并装配好本地仓库:
然后就等待下载好项目所需要的依赖:
接下来我们创建数据库:
打开之前解压的sql文件
用记事本打开这个sql文件,之后就可以创建好这些所需要的表了。
这里更改本机对应的密码:
接下来启动主程序类:
然后在浏览器中访问主程序的首页:
http://localhost
项目详情首页:
文章详情页:
后台管理界面:
文章管理界面;
相关代码的解析:
这段代码是一个后台管理模块的控制器类,用于处理与文章相关的请求。以下是对代码的解析:
- 导入了所需的包和类。
- 使用@Controller注解将该类标识为Spring的控制器。
- 使用@RequestMapping注解指定了该控制器处理的请求路径前缀为"/admin"。
- 定义了一个私有静态Logger对象logger,用于记录日志。
- 使用@Autowired注解进行依赖注入,将ISiteService和IArticleService接口的实现类注入到当前类中。
- @GetMapping注解表示处理GET请求,处理的路径为"/admin"或"/admin/index",方法名为index。
- 在该方法中,通过siteServiceImpl调用recentArticles和recentComments方法获取最新的5篇博客和评论。
- 再通过siteServiceImpl调用getStatistics方法获取统计数据。
- 将获取的数据存储到HttpServletRequest的Request域中,然后返回"back/index"页面。
- @GetMapping注解表示处理GET请求,处理的路径为"/admin/article/toEditPage",方法名为newArticle。
- 该方法用于向文章发表页面跳转,直接返回"back/article_edit"页面。
- @PostMapping注解表示处理POST请求,处理的路径为"/admin/article/publish",方法名为publishArticle。
- 该方法用于发表文章。
- 首先判断文章的分类是否为空,如果为空则设置为默认分类。
- 然后通过articleServiceImpl调用publish方法发布文章。
- 如果发布成功,返回ArticleResponseData.ok();如果发布失败,返回ArticleResponseData.fail()。
- @GetMapping注解表示处理GET请求,处理的路径为"/admin/article",方法名为index。
- 该方法用于跳转到后台文章列表页面。
- 通过@RequestParam注解获取请求中的page和count参数,默认值分别为1和10。
- 通过articleServiceImpl调用selectArticleWithPage方法查询文章,并使用PageInfo对象封装查询结果。
- 将查询结果存储到HttpServletRequest的Request域中,然后返回"back/article_list"页面。
- @GetMapping注解表示处理GET请求,处理的路径为"/admin/article/{id}",方法名为editArticle。
- 该方法用于向文章修改页面跳转。
- 通过@PathVariable注解获取路径中的id参数,然后通过articleServiceImpl调用selectArticleWithId方法查询对应id的文章。
- 将查询结果存储到HttpServletRequest的Request域中,然后返回"back/article_edit"页面。
- @PostMapping注解表示处理POST请求,处理的路径为"/admin/article/modify",方法名为modifyArticle。
- 该方法用于处理文章的修改。
- 通过articleServiceImpl调用updateArticleWithId方法更新文章。
- 如果更新成功,返回ArticleResponseData.ok();如果更新失败,返回ArticleResponseData.fail()。
- @PostMapping注解表示处理POST请求,处理的路径为"/admin/article/delete",方法名为delete。
- 该方法用于处理文章的删除。
- 通过@RequestParam注解获取请求中的id参数。
- 通过articleServiceImpl调用deleteArticleWithId方法删除id对应的文章。
- 如果删除成功,返回ArticleResponseData.ok();如果删除失败,返回ArticleResponseData.fail()
登录界面的相关代码解析:
这段代码是一个处理用户登录相关功能的控制器类,使用了Spring MVC框架。下面是对代码的分析:
-
该类位于
com.itheima.web.client
包下。 -
使用了
@Controller
注解,表示这是一个控制器类,处理请求和响应。 -
定义了一个
login
方法,使用@GetMapping
注解,处理GET请求。该方法向登录页面跳转,并封装原始页面地址到Map对象中。 -
该方法接收一个
HttpServletRequest
类型的参数,用于获取请求头和参数中的原始页面地址。 -
如果参数url中已经封装了原始页面路径,则直接返回该路径;如果请求头本身包含登录,将重定向url设为空,让后台通过用户角色进行选择跳转;否则就记住请求头中的原始访问路径。
-
返回视图名为"comm/login"的登录页面。
-
定义了一个
AccessExecptionHandler
方法,使用@GetMapping
注解,处理GET请求。该方法用于处理Security拦截的无权限访问异常,接收两个路径变量page
和code
,并返回对应的错误页面视图名。