HeroShane的gravatar头像
HeroShane 2014-06-18 17:30:07

java开源博客、社区系统源码下载,由b3log团体主创

话说前头:

这是一个已经有MrZhao小伙伴分享过的项目,只是有些信息讲诉的不是非常详细,我个人来讲吧,觉得这个项目挺好玩的,值得学习,所以在此处再完善一下这个项目的介绍。

主创发的一篇博文为什么又要造一个叫 Latke 的轮子【如果你需要给自己的理由的话...】

一些寄语:

1、发现许多小伙伴,可能就直接去下载项目,不看分享页面的一些信息的。也进行一定程度的自我反省,以后比较关键信息(诸如:项目部署、前后台页面访问链接、数据文件、项目初始化)我会显式标明,其他如项目分析那些也注明,各取所需吧,在这个信息量爆炸的时代,我们更多时候是“快、狠、准”定位所需信息,很难细细在那里分析研究,而这些还是不够“权威”的信息。

2、以后我还想在分享页面增加问题模块(把有关项目的问题(部署、运行等等)反馈后的关键信息列出,以便诸位作为参考),即有些小伙伴将项目部署到自己机子上可能有问题,因为项目部署到我机子上没问题不代表能够“袋袋平安”了,毕竟没有经过严格测试,一到其他机子会有这样或那样的问题。没关系,你可以联系我,我们一起讨论解决,我会留下联系信息,项目分享前期我可能会持续关注并及时反馈,后期可能不能像牛哥那么立即给予小伙伴们最及时的“问候”,请包涵!

3、请各位部署、运行遇到各种问题,最好预先告诉给个错误列表或信息给我,方便我先在我的机子排查,实在不行再去远程babababa之类。最好发邮件,贴错误信息,在私信那里弄这些,实在不美观,你想这样,我也没关系吧。还有不要在留言里头,仅仅说不行,好吧,即使我很有空,我是个大闲人,您老能不能留下您的联系方式,我有空您老不在,您老闲暇了吧,我可能又闪了,各种麻烦。PS:我是极度敏感的人,pc上时间日期那块东西都给隐藏、qq也不是常挂着的,诸位遇到不便,请包涵。。。

4、以后分享的是maven项目,我会标明,只是我不再手把手帮小伙伴安装maven了,这个家伙其实也很可爱的。如果你装好了,部署项目还有问题,可以联系我,如果是关于装maven的话,算我无能为力了。下面是引述自springside的一些话“Maven已经进入成熟期,没什么大的变化了。风头会慢慢被Gradle之类的盖过去,但目前仍然是首选,因为它足够满足大部分项目的需求,而且懂的人非常多。”像spring、hibernate都是使用Gradle来进行构件项目了。我废话那么多,只是想给犹豫学不学maven的小伙伴一些参考这样,关于Gradle可以参考《Maven实战》作者写的这篇文章,这个家伙要懂groovy才好对付吧,个人现阶段的想法。

5、最好给我发邮件,关于联系方式会放到最后,谢谢。

项目功能:

1、基于标签的文章分类:


2、Ping 搜索引擎:即文章搜索,不少独立博客都是使用这个的。这个要有独立站点才行。我本来想将这个重构成全文索引的,但考虑到可能需要定时任务建索引,这样需要扩展现有的框架。感觉将项目重构成ssh可能这些倒易办。但是您若是有志之士,真的很希望到github进行fork,之后full Requests什么的...
 

3、博客/标签 Atom/RSS 输出:可以参考这个类文件:org.b3log.solo.processor.FeedProcessor;
 

4、Sitemap 输出:可以参考这个类文件:org.b3log.solo.processor.SitemapProcessor
 

5、评论回复及邮件提醒:event中的comment是回复提醒参考实现;Latke中事件调用分同步和异步调用,还涉及到http client的实现,文档中所有涉猎;还有我使用gmail(最近被墙了,可以参考文档中策士图)这一切都正常,用qq邮箱貌似不行,可能我的设置有问题,用163可以参考这篇文章;
 

6、置顶/相关/随机/站外相关文章:
 

7、文章、页面永久链接(Permalink):这个访问经过org.b3log.solo.filter.PermalinkFilter,而这个过程涉及到请求处理(路由确定、方法调用、重定向、模板渲染等等),文档中所有涉猎;


8、文章草稿夹、签名档、更新提示:文章有自动保存功能,使用js定时器,这个系统的前端感觉挺有条理,我个人学到不少,文档中所有涉猎;


9、多用户:这个多用户就有点搞噱头了,最多就算团队博客,所谓团队博客,我个人理解就是前台不能注册,用户添加在后台,即添加自家人这样;发现腾讯前端的团队博客好好看;


10、多语言:现支持中文和英文,还是挺不错的;


11、换肤:很漂亮的皮肤,有美感,前端不错必要fork。。实话实说,我也想弄,超cool的皮肤~_~;


12、插件:现前系统有3个插件:一个用于页面美化,另两个是用户广播(solo的角色为admin才有机会)、symphony新闻获取(symphony的admin发的特定文章,本来代码硬编码成特定管理员,我改成了symphony的具体使用管理员,娃哈哈~_~)


13、MetaWeblog API:可以参考这个类文件:org.b3log.solo.api.metaweblog.MetaWeblogAPI;


14、数据备份/恢复:可以参考官方文档


15、自定义页面:自定义导航,这个导航能设定成你喜欢的页面;

16、关于symphony、rhythm功能,自己看下面的图,有图应该算有1/10的真相吧... ...或者可以参考这里

七嘴八舌:我本来只想要solo的业务逻辑实现,因为个人对博客功能设计不是很有感觉,想要借鉴;但是,发现当前项目,不懂Latke很难进行,可能这也是我个人原因;这个项目很好,只是这个框架吧,感觉不算很成熟,和项目结合的太厉害,你若用spring这么成熟的框架和他比较,你必定骂娘,但这也是需要个过程;框架的思想觉得吧,更底层些,角度和一般实现思维上有区别。我花了大力气去捣腾它的ioc,感觉还是不能算深入了解,知道它干了啥,不知道为啥这么干,慢慢积累,期待迟点恍然大悟的那一刻。

项目启程

声明:

1、这不是我的项目,如果大家使用,希望还是遵循准许证的授权;

2、本分享的图不特殊说明,都是出自我个人之手,我不是b3log团队成员,我在这里分享的东西不是来自官方,引用官方的东西我会说明;

3、官方网站是:http://b3log.org/,大家完全可以自己去下载。只是我分享的项目是有些小修改的,具体可以浏览下面的内容;

4、大家看到文档中一些截图可能与本页面的一些图不大一样,因为文档是“应付老板”的东西,我咨询了原作者得到允许后才修改的;

5、我分享的文档是个人整理,大家要怎么用都可以,只是里面东西只能算了很浅层次的参考,具体还是希望到github提出issue吧;

文档及其他说明:

1、项目我修改了一些东西,很难细细说来,我也忘了,sorry!!symphony有些东西我觉得硬编码了,主要是改了ftl文件的url,为他们加上了${servePath}、${staticServePath},如果发现404错误,您可以看看这链接是否正确设置了,如:您访问symphony首页链接是:http://www.shane.symphony.org:9000/symphony/,访问特定文章应该是:http://www.shane.symphony.org:9000/symphony/article/1403016464393如果变成:http://www.shane.symphony.org:9000/article/1403016464393可能会导致404错误,因为有些页面可能我改的不是很完善,如果您觉得头大,可以去fork原项目吧。或者您也可以call(@email)我;

2、运行前请诸位先install再jetty:run吧,还有ide使用的eclipse;

3、如果您觉得查看下面的东西让你头大、不够权威,请移步到官方。关于部署吧,您也可以参考这里

4、因为本来就是开源项目,我会让牛哥将牛币设置为0的;

5、也许有小伙伴想要原项目地址,如下:

  1. latke
  2. solo
  3. rhythm
  4. symphony

6、文档内容说明:

a、数据库介绍:表中字段简要说明

  1. 概要设计:系统功能(主要是solo)总体鸟瞰、系统一些设计思路(PS:我猜的,当真我也不知道是否有错,娃哈哈~_~)
  2. 详细的设计:Latke框架中ioc、persistence、event、请求处理等模块的过程(PS:不是权威的!!不是官方的!!),solo中一些比较重要的东西
  3. 测试截图:就是系统运行的一些截图,非常不专业的测试,迟点再严格要求自己吧,学习专业点的测试!
  4. maven插件编写:主要是maven插件代码的一些解析,仅做参考吧,就做了一些注解罢了。

问题反馈区域:

1、补充了系统功能(最重要的都忘了)

2、补充了Latke创作动机的文章(2014/06/28)

3、... ...

... ...

1、技术选型

a、Latke框架(由b3log团队自己写的框架,java开发,现在放到github上。没有像spring那么成熟的,如果想要javaEE主流框架的实战例子,请移步到最代码其他项目;github上有参考使用文档,个人感觉是一个大概性的描述,不深入到底层,对于我这种小白来讲学起来还是有点吃力吧);

Latke框架图(非官方)

java开源博客、社区系统源码下载,由b3log团体主创

b、使用maven进行构建;

c、数据库使用mysql

d、使用json作为数据模型。项目使用了第三方类库作为转换,类似这样的类库有:Jackson(但项目用的不是这个),先对这个东西有个大概印象吧,捣腾起来可能不能立刻明了细节,但至少知道拿来干嘛的,我也是小白说的可能不对,仅做参考;

e、项目前端使用了jquery,只是没有用它的插件,主要用jquery选择dom节点、ajax请求等。里面用的dialog、分页等都是b3log自己写的js库,官方描述是:“基于 jQuery 的简单插件。目前有:chart, completed, dialog, paginate, table, tabs, upload”,可以fork或者download到自己机子上看看,可能不是很成熟,但是很多点很值得学习,需要对js原生api比较熟悉,还有闭包、继承、原型链这些要懂点,要不很吃力。(基于我这种对前端一窍不通的人来说哈... ...)

2、项目描述(重要)

a、本次分享中有3个工程:solo(博客/blog)、rhythm(中间件/middle)、symphony(社区/community),括号中是我分享文档中的名字描述,在此说明。

b、三者之间的关系可以参考下面的图:

b.1 项目间数据流图

java开源博客、社区系统源码下载,由b3log团体主创

b.2 博客同步文章至社区的原型图

java开源博客、社区系统源码下载,由b3log团体主创

b.3 社区同步文章至博客的原型图

java开源博客、社区系统源码下载,由b3log团体主创

c、因为项目编码了在localhost(127.0.0.1)不能运用间同步信息,为此我修改了pc上的hosts文件,以域名方式访问项目,参考修改文件地址(win7):C:\Windows\System32\drivers\etc\hosts

c.1 hoste文件修改参考图

对不起,下面的图中文字有错,symphony应该为社区,rhythm应该为中间件

java开源博客、社区系统源码下载,由b3log团体主创

c.2 项目配置文件(这里以solo为例,symphony、rhythm类似,因为都是基于Latke)

关于网站加速一个例子,可以参考这篇文章:B3log博客使用七牛加速

java开源博客、社区系统源码下载,由b3log团体主创

c.3 数据库配置文件(这里以solo为例)

java开源博客、社区系统源码下载,由b3log团体主创

d、关于数据生成(有两个方法,1个是系统自动检测/手动调用,另一个是使用我分享的.sql文件,推荐前面方法)

d.1、solo项目启动时会检测数据库是否有admin信息,没有说明项目还没有初始化,就开始根据项目中repository.json生成数据表,插入原始数据;

可参考项目中java文件:org.b3log.solo.filter.InitCheckFilter

初始化图1:填写您的邮箱地址(希望是真实邮箱,可以测试后面邮件发送)

java开源博客、社区系统源码下载,由b3log团体主创

初始化图2:点击初始化,但可能没反应(可能是bug),看看数据库是否生成表,若能生成证明初始化成功。

java开源博客、社区系统源码下载,由b3log团体主创

初始化图3:有表有希望,~_~

java开源博客、社区系统源码下载,由b3log团体主创

初始化图4:前台剪影

java开源博客、社区系统源码下载,由b3log团体主创

初始化图5:前台剪影

java开源博客、社区系统源码下载,由b3log团体主创

d.2、rhythm、symphony项目数据生成(如果您是从github下载的项目,记得把latke.properties的runtimeMode设置成DEVELOPMENT,要不,不能正常进行下面方法

调用url:

1)、http://www.shane.rhythm.org:9001/rhythm/dev/db/table/gen

2)、http://www.shane.symphony.org:9000/symphony/dev/db/table/gen

d.3、将分享的.sql文件导入mysql(PS:如果前面操作您都执行成功了(所谓成功即这三个项目的数据库都生成了表,里面有一些原始数据),就不需要执行这一步

e、关于项目访问地址(PS:这不是必定的,下面是基于hosts文件的设置前提,您完全可以按照个人喜爱设置,这里只是提供一种思路

e.1 solo前台:http://www.shane.solo.org:8080/solo/

java开源博客、社区系统源码下载,由b3log团体主创

e.2 solo后台:http://www.shane.solo.org:8080/solo/admin-index.do#main

java开源博客、社区系统源码下载,由b3log团体主创

e.3 symphony首页:http://www.shane.symphony.org:9000/symphony/

java开源博客、社区系统源码下载,由b3log团体主创

e.4 symphony个人信息页

java开源博客、社区系统源码下载,由b3log团体主创

e.5 rhythm:

我不忍告诉你,他没页面,它是一个业务处理的高手...(solo、symphony怒答:我们难道是绣花枕头、是花瓶吗,呜呜呜呜。。。我不行了,出去抽根烟...)

f、其他一些补充(密码重置、广播插件),这两个在我分享文档中没有深度讨论,在这里也只能通过原型图大致说明,具体还得看编码。(rhythm是通过cron【jdk的Timer、TimerTask】来实现间隔任务的,广播过期时间为30分钟,我设置10分钟就生成一次广播机会,这是不合理的,对于很少用户数更是,这里只是为了测试,小伙伴们再自行修改吧)

f.1 广播插件实现原型图(solo、rhythm、symphony)

java开源博客、社区系统源码下载,由b3log团体主创

f.2 密码重置原型图(solo)

java开源博客、社区系统源码下载,由b3log团体主创

3、项目截图(不那么重要,可以只看图)

1、solo后台文章发布

java开源博客、社区系统源码下载,由b3log团体主创

2、solo后台文章发布-tag自动补全。PS:这个插件是他们自己写的

java开源博客、社区系统源码下载,由b3log团体主创

3、solo后台文章管理列表

java开源博客、社区系统源码下载,由b3log团体主创

4、solo后台文章管理列表-查看评论列表

java开源博客、社区系统源码下载,由b3log团体主创

5、solo后台评论管理列表。PS:头像需要到Gravatar.com注册

java开源博客、社区系统源码下载,由b3log团体主创

6、solo后台偏好设置-前台标题等等的显示。

java开源博客、社区系统源码下载,由b3log团体主创

7、solo后台偏好设置-皮肤选择。

java开源博客、社区系统源码下载,由b3log团体主创

8、solo后台偏好设置-签名档。

java开源博客、社区系统源码下载,由b3log团体主创

9、solo后台偏好设置-这个很重要,自己体会。

java开源博客、社区系统源码下载,由b3log团体主创

10、solo后台偏好设置-这个也很重要,和rhythm、symphony同步的key。

java开源博客、社区系统源码下载,由b3log团体主创

11、solo后台导航设置-外链形式。

java开源博客、社区系统源码下载,由b3log团体主创

12、solo后台导航设置-自定义页面形式。

java开源博客、社区系统源码下载,由b3log团体主创

13、solo后台友情链接列表。

java开源博客、社区系统源码下载,由b3log团体主创

14、solo后台用户列表。

java开源博客、社区系统源码下载,由b3log团体主创

15、solo后台用户列表。

java开源博客、社区系统源码下载,由b3log团体主创

16、solo后台邮件模板设置。

java开源博客、社区系统源码下载,由b3log团体主创

17、solo前台-ease皮肤-动态。

java开源博客、社区系统源码下载,由b3log团体主创

18、solo前台-ease皮肤-标签墙。

java开源博客、社区系统源码下载,由b3log团体主创

19、solo前台-ease皮肤-存档。

java开源博客、社区系统源码下载,由b3log团体主创

20、solo前台-ease皮肤-文章显示页面。

java开源博客、社区系统源码下载,由b3log团体主创

21、solo前台-ease皮肤-文章显示页面-代码高亮。

java开源博客、社区系统源码下载,由b3log团体主创

22、solo前台-ease皮肤-文章显示页面-评论and so on。

java开源博客、社区系统源码下载,由b3log团体主创

23、solo前台-metro-hot皮肤-首页。

java开源博客、社区系统源码下载,由b3log团体主创

24、solo前台-metro-hot皮肤-动态。

java开源博客、社区系统源码下载,由b3log团体主创

25、solo前台-metro-hot皮肤-文章显示页。

java开源博客、社区系统源码下载,由b3log团体主创

26、symphony-首页-文章列表。

java开源博客、社区系统源码下载,由b3log团体主创

27、symphony-首页-文章列表。

java开源博客、社区系统源码下载,由b3log团体主创

28、symphony-首页-标签列表。

java开源博客、社区系统源码下载,由b3log团体主创

下面的两幅图来自symphony社区

java开源博客、社区系统源码下载,由b3log团体主创

java开源博客、社区系统源码下载,由b3log团体主创

29、symphony-标签-文章页。

java开源博客、社区系统源码下载,由b3log团体主创

下面的图来自symphony社区

java开源博客、社区系统源码下载,由b3log团体主创

30、symphony-用户信息-个人发表文章列表。

java开源博客、社区系统源码下载,由b3log团体主创

31、symphony-用户信息-个人评论。

java开源博客、社区系统源码下载,由b3log团体主创

32、symphony-用户信息-关注的人。

java开源博客、社区系统源码下载,由b3log团体主创

下面的图来自symphony社区

java开源博客、社区系统源码下载,由b3log团体主创

33、symphony-用户信息-我的粉丝。

java开源博客、社区系统源码下载,由b3log团体主创

下面的图来自symphony社区

java开源博客、社区系统源码下载,由b3log团体主创

34、symphony-消息列表-评论。

java开源博客、社区系统源码下载,由b3log团体主创

35、symphony-消息列表-关注人新动态。

java开源博客、社区系统源码下载,由b3log团体主创

36、symphony-文章添加。(PS:使用Markdow编辑器)

java开源博客、社区系统源码下载,由b3log团体主创

37、symphony-个人信息设置、与solo同步设置。关于同步设置,可以参考这篇文章

java开源博客、社区系统源码下载,由b3log团体主创

38、symphony-广播同步

java开源博客、社区系统源码下载,由b3log团体主创

39、symphony-文章同步(PS:solo同步到symphony文章,author都改成solo的adminRole;solo同步symphony评论头像不显示具体用户头像,这里可以自己修改编码)

java开源博客、社区系统源码下载,由b3log团体主创

java开源博客、社区系统源码下载,由b3log团体主创

后话

1、联系方式:2382259197(qq、email)

2、本来很多话想说的,搁浅吧,前几天就想着快点分享的,想啊想,怎么分享才能更通俗呢,现在回头看看诸多不完美、不全面的,有重大问题迟点在修改吧~——~


打赏

已有1人打赏

人间蒸发的gravatar头像

文件名:项目分析-java开源博客+社区.rar,文件大小:4896.858K 下载
  • /
      • /项目分析-java开源博客+社区
        • /项目分析-java开源博客+社区/数据库.rar
        • /项目分析-java开源博客+社区/文档.rar
        • /项目分析-java开源博客+社区/项目.rar
最代码最近下载分享源代码列表最近下载
东北虎啸  LV3 2023年2月22日
hosinvm  LV7 2022年11月18日
二十一画  LV10 2021年11月16日
fenguy  LV1 2021年11月7日
云生123456  LV6 2021年6月8日
zxj202012  LV2 2020年12月27日
634432348  LV2 2020年6月9日
庐州一生挚爱  LV3 2020年5月30日
zzlinhanbin  LV1 2020年5月20日
townjia  LV1 2020年4月29日
最代码最近浏览分享源代码列表最近浏览
goccgoccgocc  LV4 5月9日
之额着  LV3 4月23日
yangsh123  LV3 2023年11月6日
zhaobing_g  LV3 2023年8月29日
wanglongfei2  LV2 2023年6月15日
东北虎啸  LV3 2023年2月22日
KevinST  LV5 2023年2月6日
zzhua195  LV6 2023年1月30日
getset  LV8 2022年12月6日
y1214435276  LV9 2022年11月30日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友