读者提示:jspxcms研究1)支持maven;2)支持postgresql数据库。
//=======================废话开始================================
终于有时间好好学习一些CMS的东东了,目前主要关注国内的两个开源软件jeecms和jspxcms,主要是因为简单的CMS发布原理,就是根据栏目让内容页面静态化。当然选择这两家除了这些外,最重要的可扩展的页面互动功能。
从技术上来说,就是一个Freemarker生成静态页面;从这个基本点出发,纵观开源的cms代码,可谓说为了达到这个静态化,有很多软件就“不择手段”了。狭义上理解一种就是伪静态,一种是纯静态。
伪静态主要是rewrite重写的方式,或者页面部分静态化,其它部分由js来调用,也就是所谓的ajax来和用户互动。这也是很多php、rails等解释性语言最擅长的,比如CMS的业界老大wordPress。
如果你有强迫症,认为伪静态的CMS就不能叫做CMS,你的内心需要一个干净的世界,那怕开发起来很费劲,哪你应该看看以freemarker或者valocity为模板的静态页面生成实现。国内在这一方面也比较成熟,尤其是jeecms和jspxcms的开源实现。
说到这两个软件,在研究了下代码后,感觉如出一辙,其实他们是一家人,就江西的一般哥们在写。虽然技术原理上有所差别,但用的开源软件框架都是一样的,网上也流传从jeecms分家的消息,在这里就不表了。
其实严格来说,这两家都不算真正的开源软件;jeecms有大部分的功能都进入了黑盒子,比如core包;jspxcms也有一些高级功能只能付费才能使用,比如站点管理、发布点等等。从技术人员角度来说:前者让人直接掉进陷阱里,后者掐脖子方式来进行勒索。从商业角度来说,我还是比较肯定他们的做法的。
这种值得商酌的经营模式,有的时候浪费“程序猿”或者“功城狮”的情感。放眼看下国外的做法,咱们把区域锁定在java界里,Magnolia是CMS的代表,他们现在追求一种标准,cms除了静态页面还有支持更多的浏览设备,包括流行的手持设备;支持FreeMarker,Groovy,GWT,Vaadin等。于是我就上官网下载war包,运行后发现也算能符合国人的习惯,尤其类似FLASH样的操作感受。但是,我说的是但是找源代码下载,木有;然后我在google code和git hub还有apache上找,真的是木有;大大的木有;这招且其名曰:要商业授权!
再然后就没有然后了。
于是我得出一个结论:天下乌鸦一般黑。
//=======================废话结束====================================
1)支持maven
操作方法,先把一些大的组件先加上,然后找不到的类,直接使用<systemPath>,比如:
<dependency> <groupId>IKAnalyzer2012_u6</groupId> <artifactId>IKAnalyzer2012_u6</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/IKAnalyzer2012_u6.jar</systemPath> </dependency>
当然了,这是一个费时费力的工作,基本上通过jar包判断:
a)通过winrar,判断其包名
b)通过jar名,判断其版本号,或者通过winrar找开META-INF找相关信息。
c)然后通过http://www.mvnrepository.com/ 来找相关的依赖对象。
奉献代码:pom.rar
2)支持Postgresql
同样也是一个费力的工作,主要工作内容如下:
a)修改com.antcms.core.setup.SetupServlet.java,增加两种类型的数据库。(因jspxcms版权限制暂时不提供代码哈!)
b)修改页面前端webapp\setup\database.jsp,增加postgresql数据库。(呵呵)
//========================艰苦的工作开始=====================
c)修改SQL,使其能够在postgresql上能够正常使用。操作方法是先生成Mysql5的数据库,然后通过PowerDesiger逆向生成物理模型,然后转换为Postgresql数据库;最后生成Postgresql数据库创建脚本。
在这里有几个点要注意。
c1)Postgresql支持Boolean类型,Mysql不支持,所以应该把所有的包含有is而且是char(1)类型统统修改为BOOL类型,包括其默认值(default Value),如果原来是1则为true,如果是0则为false。
c2)insert Data的sql语句,按照Postgresql语句进行规范,去掉单引号之类的。
c3)因为类型的变化,把所有DAO层所有Hiberante的boolean类型,传值由原来的0或者1,修改为false或者true;
c4)把所有Model层里包含有@Lob的字段,加上@org.hibernate.annotations.Type(type="org.hibernate.type.StringClobType"),比如:
@Lob @org.hibernate.annotations.Type(type="org.hibernate.type.StringClobType")
如果不加,会把Text或者clob对象先转换成long对象而报错。
//========================艰苦的工作结束=====================
奉献代码:postgresql.rar
3)简述下安装原理
安装前使用webapp\setup\file\setup_web.xml,安装完成后,程序会把webapp\setup\file\web.xml复制到项目下,重新启动后就以新的web.xml进行加载。安装要做的事情有三个。
a)选择数据库,配置数据库信息,生成数据库。
b)根据数据库配置信息生成custom.properties,复制到项目conf下面.
c)上面成功执行后,复制web.xml到项目下。
说下Jspxcms的缺点。
1)首当其冲的是浪费资源严重,所谓的性能测试基本是在测中间件服务器、数据库服务器和硬件的性能,如果你是程序员,你懂得。
2)没有SEO意识,只是做个形象工程,专业的网站扩展性还要定制很多。
3)慵懒的发展路线,太强势的商业意识,可能让JSPXCMS迷失方向,哈哈,这行需要修正。
3)太少的模板,应该向wordPress看齐;不支持移动终端的显示等等。
不过,最终感谢PONY-Jspxcms的大佬给我们奉献了他们的代码,让我们学习到了很多。
相关推荐
maven+mybatis+springmvc+PostgreSQL+log4j搭建的基础框架,里面做了注释和说明,比较详细,参考资料http://www.open-open.com/lib/view/open1392252233301.html
springmvc+mybatis+postgresql+maven整合,具体内容参考博文https://blog.csdn.net/smile_xg/article/details/81490063
Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
linux下搭建开发环境
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
postgresql-42.6.0.jar 对 java 8的支持postgresql驱动包
Maven坐标:org.postgresql:postgresql:42.3.3; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Maven坐标:org.postgresql:postgresql:42.2.6; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Maven坐标:org.postgresql:postgresql:42.2.5; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
maven和nexus
Maven坐标:org.postgresql:postgresql:42.3.1; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
jdk11 oracle windows x64版本 加 maven3.6
maven和MyBatis的JAVA相关代码,主要介绍的是写的项目,从而可以清楚的看到他的配置,便于我们从中得到学习。
Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven...
maven3.6.1和3.6.3安装包
apache-maven-3.0.5 apache-maven-3.1.1 apache-maven-3.2.5 apache-maven-3.3.9 apache-maven-3.5.4 apache-maven-3.6.3 apache-maven-3.8.5 每个版本包含4个文件: apache-maven-3.8.5-bin.tar.gz apache-maven-...
使用Maven构建和测试Java项目 Maven外部依赖 Maven项目文档 Maven项目模板 Maven快照 Maven构建自动化 Maven依赖管理 Maven自动化部署 Maven Web应用 Eclispe IDE集成Maven NetBeans IDE集成Maven Eclipse构建Maven...
maven3.1.1 和maven3.3.9 。 自己在开发过程中因为jdk对应问题下载 的,亲测可用 博客: https://blog.csdn.net/u011877584/article/details/83819206
maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0