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、也许有小伙伴想要原项目地址,如下:
6、文档内容说明:
a、数据库介绍:表中字段简要说明
- 概要设计:系统功能(主要是solo)总体鸟瞰、系统一些设计思路(PS:我猜的,当真我也不知道是否有错,娃哈哈~_~)
- 详细的设计:Latke框架中ioc、persistence、event、请求处理等模块的过程(PS:不是权威的!!不是官方的!!),solo中一些比较重要的东西
- 测试截图:就是系统运行的一些截图,非常不专业的测试,迟点再严格要求自己吧,学习专业点的测试!
- maven插件编写:主要是maven插件代码的一些解析,仅做参考吧,就做了一些注解罢了。
问题反馈区域:
1、补充了系统功能(最重要的都忘了)
2、补充了Latke创作动机的文章(2014/06/28)
3、... ...
... ...
1、技术选型
a、Latke框架(由b3log团队自己写的框架,java开发,现在放到github上。没有像spring那么成熟的,如果想要javaEE主流框架的实战例子,请移步到最代码其他项目;github上有参考使用文档,个人感觉是一个大概性的描述,不深入到底层,对于我这种小白来讲学起来还是有点吃力吧);
Latke框架图(非官方)
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 项目间数据流图
b.2 博客同步文章至社区的原型图
b.3 社区同步文章至博客的原型图
c、因为项目编码了在localhost(127.0.0.1)不能运用间同步信息,为此我修改了pc上的hosts文件,以域名方式访问项目,参考修改文件地址(win7):C:\Windows\System32\drivers\etc\hosts
c.1 hoste文件修改参考图
对不起,下面的图中文字有错,symphony应该为社区,rhythm应该为中间件
c.2 项目配置文件(这里以solo为例,symphony、rhythm类似,因为都是基于Latke)
关于网站加速一个例子,可以参考这篇文章:B3log博客使用七牛加速
c.3 数据库配置文件(这里以solo为例)
d、关于数据生成(有两个方法,1个是系统自动检测/手动调用,另一个是使用我分享的.sql文件,推荐前面方法)
d.1、solo项目启动时会检测数据库是否有admin信息,没有说明项目还没有初始化,就开始根据项目中repository.json生成数据表,插入原始数据;
可参考项目中java文件:org.b3log.solo.filter.InitCheckFilter
初始化图1:填写您的邮箱地址(希望是真实邮箱,可以测试后面邮件发送)
初始化图2:点击初始化,但可能没反应(可能是bug),看看数据库是否生成表,若能生成证明初始化成功。
初始化图3:有表有希望,~_~
初始化图4:前台剪影
初始化图5:前台剪影
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/
e.2 solo后台:http://www.shane.solo.org:8080/solo/admin-index.do#main
e.3 symphony首页:http://www.shane.symphony.org:9000/symphony/
e.4 symphony个人信息页
e.5 rhythm:
我不忍告诉你,他没页面,它是一个业务处理的高手...(solo、symphony怒答:我们难道是绣花枕头、是花瓶吗,呜呜呜呜。。。我不行了,出去抽根烟...)
f、其他一些补充(密码重置、广播插件),这两个在我分享文档中没有深度讨论,在这里也只能通过原型图大致说明,具体还得看编码。(rhythm是通过cron【jdk的Timer、TimerTask】来实现间隔任务的,广播过期时间为30分钟,我设置10分钟就生成一次广播机会,这是不合理的,对于很少用户数更是,这里只是为了测试,小伙伴们再自行修改吧)
f.1 广播插件实现原型图(solo、rhythm、symphony)
f.2 密码重置原型图(solo)
3、项目截图(不那么重要,可以只看图)
1、solo后台文章发布
2、solo后台文章发布-tag自动补全。PS:这个插件是他们自己写的
3、solo后台文章管理列表
4、solo后台文章管理列表-查看评论列表
5、solo后台评论管理列表。PS:头像需要到Gravatar.com注册
6、solo后台偏好设置-前台标题等等的显示。
7、solo后台偏好设置-皮肤选择。
8、solo后台偏好设置-签名档。
9、solo后台偏好设置-这个很重要,自己体会。
10、solo后台偏好设置-这个也很重要,和rhythm、symphony同步的key。
11、solo后台导航设置-外链形式。
12、solo后台导航设置-自定义页面形式。
13、solo后台友情链接列表。
14、solo后台用户列表。
15、solo后台用户列表。
16、solo后台邮件模板设置。
17、solo前台-ease皮肤-动态。
18、solo前台-ease皮肤-标签墙。
19、solo前台-ease皮肤-存档。
20、solo前台-ease皮肤-文章显示页面。
21、solo前台-ease皮肤-文章显示页面-代码高亮。
22、solo前台-ease皮肤-文章显示页面-评论and so on。
23、solo前台-metro-hot皮肤-首页。
24、solo前台-metro-hot皮肤-动态。
25、solo前台-metro-hot皮肤-文章显示页。
26、symphony-首页-文章列表。
27、symphony-首页-文章列表。
28、symphony-首页-标签列表。
下面的两幅图来自symphony社区
29、symphony-标签-文章页。
下面的图来自symphony社区
30、symphony-用户信息-个人发表文章列表。
31、symphony-用户信息-个人评论。
32、symphony-用户信息-关注的人。
下面的图来自symphony社区
33、symphony-用户信息-我的粉丝。
下面的图来自symphony社区
34、symphony-消息列表-评论。
35、symphony-消息列表-关注人新动态。
36、symphony-文章添加。(PS:使用Markdow编辑器)
37、symphony-个人信息设置、与solo同步设置。关于同步设置,可以参考这篇文章
38、symphony-广播同步
39、symphony-文章同步(PS:solo同步到symphony文章,author都改成solo的adminRole;solo同步symphony评论头像不显示具体用户头像,这里可以自己修改编码)
后话
1、联系方式:2382259197(qq、email)
2、本来很多话想说的,搁浅吧,前几天就想着快点分享的,想啊想,怎么分享才能更通俗呢,现在回头看看诸多不完美、不全面的,有重大问题迟点在修改吧~——~
猜你喜欢
- Java开源博客系统框架B3log Solo源码下载
- java开源博客blog系统源码下载
- SSM+Lucene+logback+Druid开发的Java开源博客系统源码
- ssm+maven整合开发java开源博客系统
- 基于SpringBoot2的java开源个人博客系统
- Jfinal,AmazeUI自主开发开源的java博客系统-LovePanda博客
- S2SH(spring+struts2+hibernate)整合开发java web开源个人博客系统源码
- spring mvc+apache shiro+spring JdbcTemplate开发的Java开源博客系统源码
- java ssh框架搭建开源博客网站系统源代码下载
- S2SH框架整合实现开源博客系统
- SpringBoot+Mybatis+thymeleaf搭建开源个人博客系统
- java jsp多用户博客系统源代码下载
- /
- /项目分析-java开源博客+社区
- /项目分析-java开源博客+社区/数据库.rar
- /项目分析-java开源博客+社区/文档.rar
- /项目分析-java开源博客+社区/项目.rar
- /项目分析-java开源博客+社区