本文是《Solo 从设计到实现》的一个章节,该系列文章将介绍 Solo 这款 Java 博客系统是如何从无到有的,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 ❤️

从这一章开始,我们将介绍 Solo 的功能和相应的实现细节,所以文中难免会出现一些代码片段,但我会控制粘贴的代码量,尽量言简意赅。

在正式进入 Solo 的实现代码介绍前,我们需要熟悉一下一些规范和约定,下面我们按 Java 包进行介绍。

  • org.b3log.solo:放置了两个文件,SoloServletListener.java 和 Starter.java。可以把它们看作是 Solo 程序的入口点,其中 Starter 只有在独立模式1 下会用到,Listener 则是实现了 ServletListener,应用启动、收到请求等都会首先经过这个类
  • api:提供给外部调用的接口,比如接收来自 B3log 社区2 的请求;实现 MetaWeblog API
  • cache:热数据将被缓存以提升性能
  • event:事件处理,比如发布文章 / 评论后同步到社区的处理;评论邮件发送
  • filter:Servlet 过滤器,主要用于判断是否初始化系统、自定义访问路径的请求路由
  • model:数据模型及其工具方法
  • plugin:内建的插件实现
  • processor:前后台控制器的实现,负责请求处理、返回响应
  • repository:数据库访问层,就是传统的 DAO 层实现
  • service:服务层,业务逻辑实现并封装成事务,通过“读写分离”的思想将服务分为两类:*MgmtService 作为有数据写入的操作(CUD)服务;*QueryService 作为数据读取(R)的操作服务
  • util:工具类,统一用复数形式 s 作为后缀命名

引用说明:

  • 1 Solo 有两个启动方式,分别是容器模式和独立模式。容器模式指的是将 Solo 部署到外部的 Java Web 容器(Tomcat、Jetty)中;独立模式指的是通过 java -jar 的方式启动内嵌的 Jetty 容器。
  • 2 接收帖子、回帖以实现 B3log 构思

回到全文目录:《Solo 从设计到实现》

感谢    赞同    分享    收藏    关注    反对    举报    ...