版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Jeecms开发指南版本号:jeecmsV6.12015-4-27南京安元科技有限公司目录一、系统开发指南41系统架构概述41.1 分层架构模型41.2 组件架构模型51.3 数据流转模型52框架目录介绍62.1 Cms包介绍62.2 Common包介绍72.3 Core包介绍72.4 页面资源介绍83开发流程指导103.1展现层103.2控制层133.3逻辑层153.4持久层173.5自定义标签184.开发工具使用204.1 基础代码生成步骤204.2 代码生成器生成Dao,Service,Action后台页面步骤24二、系统插件开发指南251.系统架构简述251.1 插件配置说明251.2
2、 entity开发简介251.3 dao开发配置261.4 manager开发配置261.5 action开发配置261.6 标签开发配置261.7 国际化配置261.8 权限菜单配置27三、Jeecmsv6集成第三方登录281.集成QQ登录281.1 申请QQ互联APP ID和APP KEY281.2 系统配置APP ID和APP KEY292.集成腾讯微博登录302.1 创建网页应用302.2 提交审核(确认开发者)312.3 提交审核(确认应用信息)312.4 提交审核(确认应用素材)322.5 系统配置APP ID和APP KEY参考1.1.2323.集成新浪微博登录323.1 创建应
3、用323.2 提交审核333.3 系统配置APP ID和APP KEY参考1.1.2334.特殊说明33一、 系统开发指南1 系统架构概述本系统核心架构为FreeMarker+hibernate+Spirng的mvc分层架构。1.1 分层架构模型1.2 组件架构模型1.3 数据流转模型2 框架目录介绍2.1 Cms包介绍具体包名相关功能描述comjeecmscms常量包comjeecmscmsaction通用action抽象类包comjeecmscmsactionadmin后台欢迎页的actioncomjeecmscmsactionadminassist后台辅助包comjeecmscmsact
4、ionadminmain后台核心功能包comjeecmscmsactiondirectivecms自定义标签包,公用部分继承于abs包comjeecmscmsactiondirectiveabs公用部分自定义标签的抽象包comjeecmscmsactionfront前台action包comjeecmscmsaction.member会员中心包comjeecmscmsdaoassist辅助dao的接口层comjeecmscmsdaoassistimpl辅助dao的接口实现层comjeecmscmsdaomain核心的dao接口层comjeecmscmsdaomainimpl核心的dao接口实现层
5、comjeecmscmsentityassistcms辅助实体类子类(继承父类)comjeecmscmsentityassistbasecms辅助实体类基类(父类)comjeecmscmsentityassisthbmhibernate辅助实体类的关系映射文件comjeecmscmsentitybackcms备份实体类子类comjeecmscmsentitybackbasecms备份实体类基类comjeecmscmsentitybackhbmhibernate备份实体类类的关系映射文件comjeecmscmsentitymaincms核心实体类子类comjeecmscmsentitymainb
6、asecms核心实体类基类comjeecmscmsentitymainhbmhibernate核心实体类的关系映射文件comjeecmscmslucene搜索引擎封装包comjeecmscmsmanagerassist辅助的service接口层comjeecmscmsmanagerassistimpl辅助的service接口实现层comjeecmscmsmanagermain核心的service接口层comjeecmscmsmanagermainimpl核心的service接口实现层comjeecmscmsserviceservice封装层comjeecmscmsstaticpage静态页的封
7、装包包comjeecmscmsstaticpageexception静态页的异常处理类型comjeecmscmsstatistic内容发布统计包comjeecmscmsstatisticworkload流量统计包comjeecmscmsweb拦截器包comjeecmscmstask任务包comjeecmscmstaskjob具体任务包2.2 Common包介绍具体包名相关功能描述comjeecmscommoncaptcha验证码封装包comjeecmscommondic分词comjeecmscommonemail邮件包comjeecmscommonfckfck编辑器封装包comjeecmsco
8、mmonfile文件操作封装包comjeecmscommonhibernate3hibeinate封装包comjeecmscommonimage图片的封装包comjeecmscommonipseekip地址库封装comjeecmscommonlucene收索引擎的基础包comjeecmscommonoffice文档转换相关工具类comjeecmscommonpagejeecms分页封装包comjeecmscommonsecurity安全认证相关的包comjeecmscommonsecurityannotationcomjeecmscommonsecurityencodercomjeecmsco
9、mmonsecurityremembermecomjeecmscommonsecurityuserdetailscomjeecmscommonupload上传封装包comjeecmscommonutil工具包comjeecmscommonweb常量包comjeecmscommonwebfreemarkerfreemarker视图封装包comjeecmscommonwebsessionsession包comjeecmscommonwebsessioncachesession缓存包comjeecmscommonwebspringmvcspringMVC的简单封装comjeecmscmsmanage
10、rmain核心的service接口层comjeecmscmsmanagermainimpl核心的service接口实现层comjeecmscmsserviceservice封装层comjeecmscmsstaticpage静态页的封装包comjeecmscmsstaticpageexception静态页的异常处理类型comjeecmscmsstatistic流量统计包comjeecmscmsstatisticworkload内容发布统计包comjeecmscmsweb拦截器包2.3 Core包介绍具体包名相关功能描述comjeecmscore一般常量和异常处理comjeecmscoreacti
11、onfront核心前台的actioncomjeecmscoredao核心dao的接口comjeecmscoredaoimpl核心dao的接口实现类comjeecmscoreentity登录认证和核心用户的实体子类comjeecmscoreentitybase登录认证和核心用户的实体基类comjeecmscoreentityhbm相关的hibernate的映射文件comjeecmscoremanager核心的service接口层comjeecmscoremanagerimpl核心的service接口实现层comjeecmscoresecurity认证登录、退出相关comjeecmscoretpl
12、模板接口和相关service层comjeecmscoreweb定义内容显示的接口,工具类,和错误页面的指定comjeecmscorewebutiluri帮助类2.4 页面资源介绍具体包名相关功能描述WebContentr前台资源文件,如css、img、js等res后台资源文件thirdparty第三方插件(ckeditor编辑器、swf上传、My97DatePicker日期选择)u默认的用户上传资源目录WebContent/WEB-INFcache缓存文件common通用页面config核心的配置文件,如果action,service,manager,dao,bean等directive标签向
13、导模板文件error错误页面ftl自定义的freemark宏文件ispeekip地址库jeecms_sys后台管理页面account账号绑定列表acquisition采集admin管理员advertising广告advertising_space广告版位channel栏目comment评论common公用错误页面config系统配置content内容content_reuse内容复用data数据备份department部门dictionary字典directive向导标签file文件frame框架集friendlink友情链接friendlink_ctg友情链接分类ftpftpgroup用户组
14、guestbook留言guestbook_ctg留言分类item模型字段keyword关键词log日志lucene全文检索member会员menu自定义菜单message短消息model模型origin来源personal个人中心plug插件resource资源role角色scoregroup评分组scoreitem评分项searchwords搜索词sensitivity敏感词site站点site_config站点配置static静态化statistic浏览统计tagTag关键词template模版topic专题type内容类型visual可视化编辑unified_user用户vote_top
15、ic投票workflow工作流workflowRecord工作流记录languages国际化配置jeecms/admin后台jeecms/front前台jeecms/tpl模版jeecore/admin公用国际化lucenelucene文件夹t/cms前台模板页面t/cms/www站点资源目录t/cms/www/plan站点方案3 开发流程指导3.1 展现层3.1.1 Freemarker介绍FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术
16、,而且还可以用于生成XML,JSP或Java 等。3.1.2 后台页面后台页面需要的文本信息在languages/jeecms/admin下messages_zh_CN.properties中配置国际化属性cms.function.assistant=辅助spring中配置好资源文件,使spring mvc在html文件能够读到资源文件信息。 在jeecms_sys文件夹中添加功能板块文件夹和相应的管理页面读取控制层的属性非常简单,freemark只需用类似jsp的el表达式输出普通对象。对于控制层传输过来的集合对象可用freemark内置对象list来循环出来3.1.3 前台模版页面在def
17、ault目录相应的文件夹添加html,在html文件中引入freemark机制控制control层传输对象的显示。3.2 控制层3.2.1 SpringMVC简介Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 FreeMarker、JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对
18、象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。3.2.2 控制层实现 配置SpringMVC支持Web.xml配置Spring后台核心调度器JeeCmsAdminorg.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-INF/config/jeecms-servlet-admin.xml/WEB-INF/config/plug/*/*-servlet-admin-action.xml1Web.xml配置Spring后台核心调度器匹配路径JeeCmsAdmin/jeead
19、min/jeecms/*Web.xml配置Spring前台核心调度器JeeCmsFrontorg.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-INF/config/jeecms-servlet-front.xml/WEB-INF/config/plug/*/*-servlet-front-action.xml2Web.xml配置Spring前台核心调度器匹配路径JeeCmsFront*.jhtmlJeeCmsFront*.jspxJeeCmsFront*.jspJeeCmsFront*.htm3.
20、2.2.2 Spring Controllercom.jeecms.cms.action.admin.main核心管理模块Controllercom.jeecms.cms.action.admin.assist辅助管理模块Controller/*Controller标志该类是Srping Controller*/Controllerpublic class WelcomeAct /*/index.do该地址将由Spring DispatchServlet负责调度给该方法处理*/RequestMapping(/index.do)public String index() return index
21、;RequestMapping(/top.do)public String top(HttpServletRequest request, ModelMap model) / 需要获得站点列表List siteList = cmsSiteMng.getList();CmsSite site = CmsUtils.getSite(request);CmsUser user = CmsUtils.getUser(request);/ 传输对象到view层model.addAttribute(siteList, siteList);model.addAttribute(site, site);mod
22、el.addAttribute(siteParam, AdminContextInterceptor.SITE_PARAM);model.addAttribute(user, user);return top;/*装配service层对象,调用业务逻辑层*/Autowiredprivate CmsSiteMng cmsSiteMng; SpringMVC扩展配置jeecms-servlet-admin.xml 后台Spring国际化、拦截器、SpringMVC视图解析器配置jeecms-servlet-front.xml前台Spring国际化、拦截器、SpringMVC视图解析器
23、配置jeecms-servlet-admin-action.xml 后台action配置文件jeecms-servlet-front-action.xml前台action配置文件配置action bean3.3 逻辑层3.3.1 类存放包介绍com.jeecms.cms.manager.main.impl核心service层com.jeecms.cms.manager.assist.impl 辅助service层com.jeecms.cms.service 采集、栏目、内容、流量公用service包3.3.2 service类代码编写样例ServiceTransactionalpublic c
24、lass CmsConfigMngImpl implements CmsConfigMng Transactional(readOnly = true)public CmsConfig get() CmsConfig entity = dao.findById(1);return entity;public void updateCountCopyTime(Date d) dao.findById(1).setCountCopyTime(d);public void updateCountClearTime(Date d) dao.findById(1).setCountClearTime(d
25、);public CmsConfig update(CmsConfig bean) Updater updater = new Updater(bean);CmsConfig entity = dao.updateByUpdater(updater);entity.blankToNull();return entity;public MarkConfig updateMarkConfig(MarkConfig mark) get().setMarkConfig(mark);return mark;public void updateMemberConfig(MemberConfig membe
26、rConfig) get().getAttr().putAll(memberConfig.getAttr();private CmsConfigDao dao;/自动装配dao层Autowiredpublic void setDao(CmsConfigDao dao) this.dao = dao;需要ServiceTransactional注解标志该类为业务逻辑层,所有的service层均采用接口开发模式Transactional(readOnly = true)只读事物3.3.3 配置service beanjeecms-context.xml中增加service bean的配置3.4 持
27、久层3.4.1 Hibernate3简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操作数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用3.4.2 类代码编写样例持久层采用Hibernate3,缓存采用Ehcachecom.jeecms.cms.dao.main.impl 核心DAO层com.jeecms.cms.dao.assist.impl 辅助DAO层Repositorypublic class
28、 CmsConfigDaoImpl extends HibernateBaseDaoimplements CmsConfigDao public CmsConfig findById(Integer id) CmsConfig entity = get(id);return entity;/重写getEntityClass方法Overrideprotected Class getEntityClass() return CmsConfig.class;Repository注解标志该类是DAO层组件,可以选择继承HibernateBaseDao基础类,需要实现接口。3.4.3 配置DAO bea
29、njeecms-context.xml中增加dao bean的配置3.4.4 POJOcom.jeecms.cms.entity.main 核心功能包的pojocom.jeecms.cms.entity. main.base 辅助功能包的pojo基础类com.jeecms.cms.entity. main.hbm 辅助功能包Hibernate实体映射文件com.jeecms.cms.entity.assist辅助功能包的pojocom.jeecms.cms.entity.assist.base 辅助功能包的pojo基础类com.jeecms.cms.entity.assist.hbm 辅助功能
30、包Hibernate实体映射文件3.5 自定义标签3.5.1 定义标签类自定义标签类所属包com.jeecms.cms.action.directive 标签类需要实现Freemarker内置接口TemplateDirectiveModel 获取标签参数可以用DirectiveUtils工具类获取public class ChannelDirective implements TemplateDirectiveModel /* * 输入参数,栏目ID。 */public static final String PARAM_ID = id;/* * 输入参数,栏目路径。 */public sta
31、tic final String PARAM_PATH = path;/* * 输入参数,站点ID。存在时,获取该站点栏目,不存在时获取当前站点栏目。 */public static final String PARAM_SITE_ID = siteId;SuppressWarnings(unchecked)public void execute(Environment env, Map params, TemplateModel loopVars,TemplateDirectiveBody body) throws TemplateException, IOException CmsSite
32、 site = FrontUtils.getSite(env);/get required params from directiveInteger id = DirectiveUtils.getInt(PARAM_ID, params);Channel channel;if (id != null) channel = channelMng.findById(id); else String path = DirectiveUtils.getString(PARAM_PATH, params);if (StringUtils.isBlank(path) / 如果path不存在,那么id必须存
33、在。throw new ParamsRequiredException(PARAM_ID);Integer siteId = DirectiveUtils.getInt(PARAM_SITE_ID, params);if (siteId = null) siteId = site.getId();channel = channelMng.findByPathForTag(path, siteId);Map paramWrap = new HashMap(params);/put result to viewparamWrap.put(OUT_BEAN, DEFAULT_WRAPPER.wrap
34、(channel);Map origMap = DirectiveUtils.addParamsToVariable(env, paramWrap);/render result to responsebody.render(env.getOut();DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);/装配所需serviceAutowiredprivate ChannelMng channelMng;3.5.2 配置标签1.jeecms-context.xml配置Spring bean2.jeecms-contex
35、t 文件中perties文件中引入自定义标签beandirective.cms_channel_list=cms_channel_list 3.6 标签应用cms_content_list count=9 titLen=15 orderBy=8 channelOption=1 channelId=1 #list tag_list as a text_cut s=a.title len=titLen append=append/ /#list /cms_content_listcms_content_list标签名称count、titLen、orderBy、channelOp
36、tion、channelId标签参数tag_list标签结果a循环变量$a.url输出a对象的url属性4.开发工具使用4.1基础代码生成步骤4.1.1将hibernate mapping file插件引入到myeclipse注意事项:1.myeclipse版本最好为6.5或者6.0版本 2.将插件直接放入到myeclipse安装包的plugins包下面 3.重启服务4.1.2插件的使用说明选中需要生成映射文件对用的文件夹生成entity层 将修改完的生映射文件进行保存,会自动生成entity层(包括base层)4.2代码生成器生成Dao,Service,Actio
37、n后台页面步骤4.2.1配置properties文件4.2.2运行相关的java文件com.jeecms.cms.template.CmsModuleGenerator.java打开后Run Asjava application二、系统插件开发指南1.系统架构简述本系统核心架构为FreeMarker+hibernate+Spirng的mvc分层架构。jeecms支持无侵入式插件和二次开发,无需修改系统原有代码,即可无缝整合entity、manager、dao、action、功能菜单、权限、标签、国际化等功能。1.1插件配置说明配置文件位置:/WEB-INF/config/plug。所有的配置文
38、件都必须在这个目录,在该目录下的配置文件会自动加载。在该目录下新建自己的文件夹,如:test,本例为test。即/ WEB-INF/config/plug /test配置文件说明(test插件名,可任意起名)perties:标签、功能菜单、权限、国际化、Hbm映射路径配置。test-context.xml:dao、manager、标签的配置。test-servlet-admin-action.xml:后台action的配置。test-servlet-front-action.xml:前台action的配置。其他与插件开发相关的文件目录/WEB-INF/languages /pl
39、ug/test/admin:后台国际化文件夹/WEB-INF/languages /plug/test/front:前台国际化文件夹/WEB-INF/languages /plug/test/tpl:模板国际化文件夹/WEB-INF/jeecms_sys/:后台页面文件位置(可自行新建子文件夹)/WEB-INF/t/cms/www/default/:前台模版文件夹插件源代码包名:com.jeecms.test1.2entity开发简介建立hibernate映射文件和实体类(实例com.jeecms.test.entity.hbm)配置插件的实体映射文件路径(perties增加以
40、下配置)hibernate.hbm.test.entity=classpath*:/com/jeecms/test/entity/hbm/*.hbm.xml说明hibernate.hbm为固定格式,test.entity这个key只要不和其他插件重名即可1.3dao开发配置源码开发部分可参考源码部分,配置dao的beantest-context.xml增加如下配置1.4manager开发配置源码开发部分可参考源码部分,配置manager的beantest-context.xml增加如下配置1.5action开发配置源码开发部分可参考源码部分,配置action的beantest-servlet-admin-action.xml增加如下配置1.6标签开发配置源码开发部分可参考源码部分,配置directive的beantest-context.xml增加如下配置perties增加标签配置directive.test_list=test_list上述配置说明directive.固定格式,test_list为标签名,test_list为在test-context.xml配置文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水上乐园建设室外施工合同
- 冶金行业定价管理办法
- 停职留薪协议书范本
- 火车站单元门定制安装合同
- 企业融资保理操作指南
- 建筑工程机械施工合同
- 教育培训机构资金引入指南
- 教育论坛活动免责承诺书
- 文化传媒劳务招投标管理规定
- 城市快速路路灯设施安装合同
- 2024-2025学年七年级上学期期中考试英语试题
- 职域行销BBC模式开拓流程-企业客户营销技巧策略-人寿保险营销实战-培训课件
- 教科版科学三年级(上册)2.6我们来做热气球(课件)
- CPrimerPlus第六版中文版习题答案
- 点子图方格纸合计
- 乘法的故事(小学二年级课前小故事).ppt
- 光荣升旗手PPT课件
- 《骨盆重要性》PPT课件.ppt
- WHO癌痛的三阶梯止痛的原则
- 第二节络合物的分子轨道理论
- 高等电力系统分析
评论
0/150
提交评论