精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-08-12
最后修改:2013-03-25
所以我整理并完善了这几年不断学习并实践而开发的项目,跟大家分享下以往项目中用到的技术、框架、工具等,希望改变下氛围,也希望对大家有所帮助。 论坛地址:http://www.xlinecode.com svn地址如下: https://xlinecode.com:8082/svn/info-project,账号:guest,密码:guest 大致项目情况如下: 该项目是以cms为出发点,目的是打造一个系统原型,根据相关需求可在该原型上添加相关功能来实现论坛、门户网站或者博客等。 项目分为两部分:info-core和info-web,info-core就是上面所提到的原型,而info-web下有info-forum,是我仿照jforum开发的论坛,所以界面跟功能都跟jforum类似(有人会觉得重复发明轮子,其实跟jforum是有区别的,jforum是用freemarker+servlet实现的,而info-forum是用ssh来做的),如果有需求的话,将来会在info-web下添加其他的web产品。 info-core架构和技术: info-core由下往上分为以下几层: info-object-model:对象模型层,主要用到jpa的annotation来完成对象与数据表的映射(目前dao的实现使用hibernate的critirion api,以后会转为jpa的api来做)。 info-dao-api:dao api层,定义了增删改查的接口,与info-dao-hb分离的主要目的是为了方便的切换dao的实现框架,方便以后在GAE、AMS或新浪云之间切换。 该层同时还定义了初始化dao框架的接口。 info-dao-hb:dao api的hibernate实现层。通过继承DAOManager来完成框架的初始化。 info-dms:服务层,定义了各种服务接口用以提供不同服务,该层封装了dao的实现,同时也是以Spring IOC、AOP、Spring Security为实现方式解耦日志、权限、安全并扩展 info-core功能的基本。该层还提供了测试相关接口的test case。 info-security:安全层,主要提供登录info-core所用到的jaas相关类、权限验证相关类、增加department、category、info等数据时添加相应权限的aop advice及Spring Security登录的定制操作。 info-utilities:用以存放各层使用的公共util类。 info-ext-ranking:扩展info-core的等级机制,对于info-core来说并非核心,其主要用在论坛等需要等级的产品上。实现机制是通过使用java泛型、Spring IOC、AOP来扩展info-core。 info-context:info-core的会话层,用于管理用户登录后的session、新用户注册后但尚未激活的信息、发布信息后的间隔时间等,提供了获取info-dms服务的接口,也就是说对于底层的api的调用都要通过该层来完成,其目的是提供统一接口,防止开发人员直接调用底层接口绕过info-security等层(通过阅读源码会发现很多底层类的modifier是priviate或者package的,这样开发人员就不能直接实例化dao等对象),该层还提供了初次化系统所需数据的相关类。 info-aggregator:主要用以使用maven将以上工程安装并发布到仓库。工程内已提供maven需要的运行脚本。 info-web: 基于info-core开发的论坛,使用struts1开发(有兴趣的童鞋可以一起探讨升级到其他框架,达到网站url restful化) info-config: 存放info-parent,用以管理以上工程的版本信息、jar的版本、依赖关系等。 产品架构和技术情况如上,虽然工作5年多,但在实际项目中真正使用到以上其一或其二框架的公司并不多,也可能是我运气差了点,所以这个原型也算是我的一个愿望,希望在自己的实践中真正通过框架把每一层分好,加上对应的测试用例等,按照一个教科书版的流程来开发、测试、部署和发布产品。有兴趣的童鞋也可以加群 256176996 一起完善开发新功能。 本想用这项目在家搭建搭建一个服务器为该产品提供相关信息的,无奈使用多年的台式机不给力,在安装多个软件后崩溃了,所以打算直接把dao的实现改层jpa的实现,放到GAE上。目前要是有兴趣的话只能自己部署了,部署步骤如下: 1. 下载Eclipse java ide,将info-core下的工程导入eclipse,再导入info-config下的info-parent。 2. 点击eclipse preferences,展开run/debug,点击String Substitution,点击new添加变量maven_exec,并把value指定到maven的mvn.bat,如:D:\info-project\maven-distribution\apache-maven-3.0.1\bin\mvn.bat(项目中已经自带了maven,目的是同一安装环境) 3. 选中info-parent工程,点击eclipse的external tools按钮,这时eclipse应该会自动导入info-aggregator\src\main\resources\eclipse_external_tool_setting下的脚本,点击mvn_install安装info-parent(如未自动导入,则点击eclipse_external_tool_setting下的任一脚本,在点击external tools configuration查看是否已导入) 4. 选中info-aggregator,执行mvn_install。 5. 至此,info-core已安装完毕,安装mysql数据库后创建bbs数据库。 6. 下载eclipse javaee ide,并安装maven插件,导入info-web下的info-forum,选中工程后右键选中maven--> update project configuration...更新工程,更新完成后就可启动tomcat。 7. 输入url localhost:8080/info-forum,使用id 1,密码12345登录系统,至此,部署完成! 8. 之所以使用两个不同的ide,是为了说明info-core是独立于info-web的存在,因此开发由不同角色的开发人员进行。 因现在没有服务器,所以从svn下载的maven中的配置指向的仓库地址是用不了的,需自行再下个maven,然后在两个eclipse中指定该maven,这样安装的jar才会指向本地仓库 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-08-12
哥 svn地址无法下载
|
|
返回顶楼 | |
发表时间:2012-08-13
|
|
返回顶楼 | |
发表时间:2012-08-22
麻烦你给我发邮箱一份吧ifengicode@gmail.com,我使用svn迁出了,感觉不对劲!谢谢啦!
|
|
返回顶楼 | |
发表时间:2012-08-23
fengyunshuozhe 写道 麻烦你给我发邮箱一份吧ifengicode@gmail.com,我使用svn迁出了,感觉不对劲!谢谢啦!
发不了啊,超出邮件大小限制了,你遇到啥问题了 |
|
返回顶楼 | |
发表时间:2012-08-23
fengyunshuozhe 写道 麻烦你给我发邮箱一份吧ifengicode@gmail.com,我使用svn迁出了,感觉不对劲!谢谢啦!
用163发了 |
|
返回顶楼 | |
发表时间:2012-08-27
谢谢,麻烦你拉。谢谢!!
|
|
返回顶楼 | |
发表时间:2012-08-28
tamink121@126.com LZ 好人
|
|
返回顶楼 | |
发表时间:2012-08-29
niulist@126.com 我也想要……
|
|
返回顶楼 | |
发表时间:2012-08-29
为什么这个论坛看着眼熟
|
|
返回顶楼 | |