apdplat

APDPlat的系统启动和关闭流程剖析

点点圈 提交于 2019-12-06 09:42:46
APDPlat 接管了Spring的启动关闭权,为各种运行其上的开源框架和类库的 无缝集成 提供了支持。 当然,大家都知道,一个JAVA EE Web应用的入口点是web.xml,APDPlat当然也不例外,我们看看APDPlat是如何接管Spring的启动关闭权的: <listener> <description>经过定制的spring监听器</description> <listener-class>org.apdplat.platform.spring.APDPlatContextLoaderListener</listener-class> </listener> /** * 自定义Spring的ContextLoaderListener * @author 杨尚川 */ public class APDPlatContextLoaderListener extends ContextLoaderListener { @Override public void contextInitialized(ServletContextEvent event) { //接管系统的启动 SystemListener.contextInitialized(event); super.contextInitialized(event); } @Override public void

APDPlat如何自动建库建表并初始化数据?

▼魔方 西西 提交于 2019-12-05 13:53:09
APDPlat 共支持10种数据库:DB2、DERBY、H2、HSQL、INFORMIX、MYSQL、ORACLE、POSTGRESQL、SQL_SERVER、SYBASE。 数据库的默认配置信息在文件APDPlat_Core/src/main/resources/org/apdplat/db.properties中定义,用户可以根据自己的选择,在APDPlat_Web/src/main/resources/db.local.properties配置文件中覆盖默认配置。 1、如何指定使用哪一种数据库呢? jpa.database=MYSQL jpa.database 配置项的值可为上述10种数据库之一,10种数据库的JDBC驱动已经集成到APDPlat中,其中5种定义到maven配置文件APDPlat_Web/pom.xml的依赖中,其余5种放置在APDPlat_Web/src/main/webapp/WEB-INF/lib目录中。 2、如何配置数据库连接信息呢? #mysql db.driver=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/${module.short.name}?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist

APDPlat拓展搜索之集成Solr

做~自己de王妃 提交于 2019-12-05 13:52:36
APDPlat 充分利用Compass的 OSEM 和 ORM integration 特性,提供了 简单易用 且 功能强大 的 内置搜索 特性。 APDPlat的内置搜索,在设计 简洁优雅 的同时,还具备了强大的 实时搜索 能力,用户只需用 注解 的方式在模型中指定需要搜索哪些字段(还可在模型之间进行关联搜索)就获得了搜索能力,而不用编写任何代码。平台自动处理索引维护、查询解析、结果高亮等支撑功能。 然而APDPlat的内置搜索只能在单机上面使用,不支持分布式,只能用于中小规模的场景。为了支持大规模的分布式搜索和实时分析,APDPlat 除了可以选择 Compass的进化版 ElasticSearch 外( APDPlat拓展搜索之集成ElasticSearch ), 还可以有另外一个选择 ,那就是 Solr 。 Solr提供了Java Client API( SolrJ ),我们可以使用SolrJ来和Solr服务器进行交互。首先我们在pom.xml中引入SolrJ依赖: <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>${solrj.version}</version> </dependency> 接下来我们看一个APDPlat和

APDPlat拓展搜索之集成ElasticSearch

对着背影说爱祢 提交于 2019-12-04 17:01:40
APDPlat 充分利用Compass的 OSEM 和 ORM integration 特性,提供了 简单易用 且 功能强大 的 内置搜索 特性。 APDPlat的内置搜索,在设计 简洁优雅 的同时,还具备了强大的 实时搜索 能力,用户只需用 注解 的方式在模型中指定需要搜索哪些字段(还可在模型之间进行关联搜索)就获得了搜索能力,而不用编写任何代码。平台自动处理索引维护、查询解析、结果高亮等支撑功能。 然而 APDPlat的内置搜索只能在单机上面使用,不支持分布式,只能用于中小规模的场景。为了支持大规模的分布式搜索和实时分析, APDPlat选用Compass的进化版 ElasticSearch ( Compass和ElasticSearch的关系 )。 ElasticSearch提供了Java Client API,但是由于该API依赖于Lucene的org.apache.lucene.util包中的几个类,以致于无法和 APDPlat集成,原因是 APDPlat中Compass依赖的Lucene的版本和 ElasticSearch依赖的版本冲突。 从这里可以得知, ElasticSearch的Java Client API如果完全移除对Lucene的依赖,仅仅作为用户和 ElasticSearch集群之间通信的接口,使用起来就会更方便。 因此, APDPlat只能采用

struts2和spring mvc,孰优孰劣?

六月ゝ 毕业季﹏ 提交于 2019-11-29 05:21:52
最近我在将 APDPlat 升级到Java8,由于之前有很多的同学希望我把 APDPlat 的struts2替换为spring mvc,所以我就决定试试看。 本次我把APDPlat的struts2改造为spring mvc的目标是:99.99%不改动JS、HTML、JSP等前端代码,只改JAVA代码!所以大家要先理解我的目标,然后再来看我的做法。 本文我们看两个转换前后的例子: 1、下拉列表服务,此类比较简单,只涉及一个方法store: 使用struts2: @Scope("prototype") @Controller @Namespace("/dictionary") public class DicAction extends ExtJSSimpleAction<Dic> { @Resource private DicService dicService; private String dic; private String tree; private boolean justCode; /** * * 此类用来提供下拉列表服务,主要有两种下列类型: * 1、普通下拉选项 * 2、树形下拉选项 * @return 不需要返回值,直接给客户端写数据 * */ public String store(){ Dic dictionary=dicService.getDic(dic)