读者提示: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的大佬给我们奉献了他们的代码,让我们学习到了很多。
相关推荐
1. 创建Maven项目结构,定义POM.xml文件,添加Spring、SpringMVC、MyBatis、PostgreSQL和相关依赖。 2. 配置SpringMVC的DispatcherServlet,设置拦截器、视图解析器等。 3. 定义MyBatis的配置文件,包括数据源、...
在Linux环境下搭建开发环境是每个IT开发者必备的...以上就是在Linux环境下搭建一个包含JDK、Tomcat、IDEA、Git、Maven和PostgreSQL的基础开发环境的详细步骤。确保每个步骤都正确执行,以保证后续的开发工作顺利进行。
Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
postgresql-42.6.0.jar 对 java 8的支持postgresql驱动包
Maven坐标:org.postgresql:postgresql:42.3.3; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
标题“jdk11_maven3.6_win_x64.zip”指的是一个包含...总之,这个压缩包为Windows 64位用户提供了Java 11开发环境和Maven 3.6构建工具,是Java开发者的重要资源,可以帮助他们快速搭建开发环境,高效地管理项目和依赖。
Maven是一款基于Java的项目管理和构建工具,由 Apache Software Foundation 开发和维护。Maven的主要功能是帮助开发者快速构建、测试和部署项目。在实际项目开发中,Maven发挥着至关重要的作用。下面,我们将对Maven...
** Maven工具和安装方法 ** Maven是一款强大的项目管理和依赖管理工具,广泛应用于Java开发领域。它通过XML格式的配置文件来管理项目的构建、报告和文档,极大地简化了项目的生命周期管理。Maven3.5是其中的一个...
在软件开发过程中,构建工具如Maven与开发环境的兼容性至关重要,因为它直接影响到项目的构建、编译和测试流程。 **Maven** 是一个流行的Java项目管理和综合工具,它帮助开发者管理项目依赖、构建流程、生成文档等...
3.6 和 3.8 都支持插件管理,但新版本可能包含对更多插件的升级和支持。 4. **生命周期与构建阶段**: - Maven 的生命周期包括清洁(clean)、初始化(initialize)、编译(compile)、测试(test)、打包...
Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一个统一的构建过程,简化了项目的构建、依赖管理以及文档生成等任务。Maven 3.5.2是Maven的一个稳定版本,包含了众多优化和改进,提升了...
2. **构建工具**: Maven支持多种构建目标,如编译、测试、打包、部署等,只需在POM文件中定义即可。 3. **生命周期**: Maven有预定义的生命周期,包括clean、default和site三个阶段,每个阶段包含一系列的阶段...
Maven坐标:org.postgresql:postgresql:42.2.6; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Maven 3.x系列相较于之前的版本,引入了诸多改进,如性能优化、更好的错误报告、支持多模块项目和更灵活的依赖管理。Maven 3.1是在3.0的基础上进行的增强,增加了对POM引用远程属性文件的支持,提升了插件管理和...
postgresql 的jar驱动包 postgresql 的jar驱动包 postgresql 的jar驱动包
在"ssm和PostgreSQL整合"的过程中,主要涉及以下几个关键知识点: 1. **Spring框架**:Spring的核心是IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)。开发者通过配置文件或注解...
postgresql-8.3-603.jdbc4.jar
Maven 通过使用一种标准的项目对象模型(Project Object Model,POM)来简化构建过程,同时提供了对依赖管理和构建生命周期的支持。在本文中,我们将深入探讨 Maven 3.2.5 和 3.3.9 这两个不同版本的特点、改进以及...
Maven 是一个Java项目管理和综合工具,由Apache软件基金会开发。它简化了构建、依赖管理和项目文档的生成过程。Maven使用一个统一的项目对象模型(Project Object Model,POM),使得项目的配置信息标准化,便于自动...