1.工程简介
1.1管理后台UI框架设计思想
管理后台UI界面使用dwz UI框架,整个后台页面为一个统一的页面,所有工作区标签页内容使用ajax请求获取,然后以html片段形式追加到后台页面中,然后对追加的页面进行js效果初始化,对比json方式交互渲染页面过程更简单。
1.2程序设计思想
软件使用了SpringMVC, Spring Boot, Hibernate, Hibernate Search,Mybatis, FreeMarker, Mysql jdbc, c3p0, jedis, jackson, quartz, Apache commons及其依赖的包,包依赖关系、工程编译等工作由Maven,gradle处理。
软件请求由多个Servlet响应分别是:后台Servlet,前台Servlet,接口Servlet,静态文件Servlet,安装Servlet。
其中后台Servlet,前台Servlet,接口Servlet交给SpringMVC中的DispatcherServlet处理。其中IndexAdminController, IndexController映射了默认的请求处理,优先等级最低,请求处理逻辑为直接渲染请求路径对应的页面模板。页面模板渲染过程可以使用FreeMarker指令扩展获取需要的数据,降低了控制层改动频率,实现了视图层JAVA代码的最大化复用,表单的处理则采用了传统的SpringMVC Controller接收并处理的方式。
1.3命名规范与工程结构
Java代码:
.common 工具类、解决方案类等同用类包 .base 基础类包 .datasource 数据源包 .directive 指令基础包 .cache 缓存包 .constants 常量定义类包 .handler 分页处理,查询处理,FreeMarker异常等处理器包 .generator 代码生成工具包 .search 全文搜索组件 .servlet Servlet包 .tools 工具类包 .view 视图层基础包 .entities 实体类包 .logic 逻辑类包 .component 组件包 .dao 数据库操作类包 .service 事务与逻辑封装类包 .controller 控制器类包 .web 前台站点控制器类包 .admin[不代表官方] 管理后台控制器类包 .api 接口控制器包 .views 视图类包 .directive freemaker自定义指令类包 .method freemaker自定义方法类包 .pojo 表单实体包 boot SpringBoot入口类 config.spring Spring配置类 config.initializer Servlet加载器 |
资源文件:
resources config 配置文件 language 语言文件 templates 模板文件 admin[不代表官方] 管理后台模板 ftl freemarker自动导入或包含的模板文件 web 前台页面模板,优先级低于数据目录中template目录中的文件 cms.properties cms配置文件 log4j2.properties 日志配置文件 webapp error http错误页面,仅在传统容器中部署生效 META-INF java应用描述文件 resource 管理后台静态资源文件 WEB-INF java应用安全目录 index.html 程序不完整提示页面,仅在程序不完整时生效 |
1.4启动流程
启动容器后,容器加载应用的的web.xml,扫描ServletContainerInitializer的实现类,开始spring的初始化,spring对publiccms多个Initializer分别进行初始化和配置类注册
1.5请求处理流程
浏览器发起请求,SpringMVC根据请求映射规则首先查找是否有Controller对应请求路径,如果有则由该Controller处理该请求,如果没有则有IndexController.page方法处理请求,该方法首先加载该路径对应的模板的元数据,判断是否允许动态访问,允许则返回模板路径,不允许则返回404错误
1.6模板路径的处理
1.7静态文件路径的处理
2.Hibernate实体自动生成
使用工程中的代码生成
1.配置数据库信息
修改配置文件publiccms\src\test\resources\hibernate\hibernate.properties总数据库信息
2.com.publiccms.common.generator. EntitysGenerator生成实体文件
3.刷新项目即可看到生成的代码
3.逻辑代码及页面自动生成
该生成方法对hibernate实体进行注解标注后,根据注解信息生成自定义指令、Controller、Service、Dao、html,是CMS开发阶段采用的生成方式
1.对实体类属性使用com.publiccms.common.generator.annotation.GeneratorColumn注解类标记字段类型【condition:是否用于查询条件,order:是否用于排序,like:查询条件是否为like匹配,or:查询条件是否为or逻辑,name:字段名,当or为true时,相同name 的字段为同一组or条件,title:字段真实含义】
2.使用com.publiccms.common.generator.SourceGenerator生成代码文件
3.刷新项目即可看到生成的代码
4.Mybatis代码自动生成
1.修改src/test/resources/generator/mybatis/generatorConfig.xml的数据库相关属性,确保数据库是正确且可连接。
2.打开src/test/java/com/publiccms/common/generator/MybatisGenerator.java的文件
3.运行main函数,将会生成Mybatis代码文件
4.刷新项目即可看到生成的代码
0条评论
发表评论