- 浏览: 285268 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (120)
- Struts 1.框架 (12)
- Spring框架 (9)
- hibernate框架 (6)
- web 综合 (15)
- Dwr (1)
- struts 2 (19)
- 设计模式 (0)
- lucene (6)
- oracle (3)
- linux (10)
- mysql (4)
- jquery (0)
- AJAX (1)
- javaScript (1)
- J2SE (4)
- IBATIS (3)
- JPA (1)
- Compass (3)
- 报表 (1)
- 任务调度 (1)
- tomcat (3)
- RMI (0)
- JMS (2)
- WebService (2)
- SOAP (0)
- XML (1)
- 多线程 (8)
- 缓存 (2)
- nginx (3)
- mongodb (1)
- ant打包 (0)
最新评论
-
iceman1952:
Hi 你觉得很好的那两三篇 百度文库的链接,能贴一下吗?
内网穿透&UDP打洞 -
ice86rain:
里面貌似没有用到Lucene
Struts2+Hibernate3.2+Spring2.5+Compass整合 -
sgq0085:
写得非常详细 好文章
JMS之ActiveMQ Linux下安装与应用实例 -
強顔歓笶:
JMS之ActiveMQ Linux下安装与应用实例 -
yixiandave:
forcer521 写道不指定所有子目录都在一起的话,这样用源 ...
linux下nginx稳定版1.6.2安装
之前学习了Compass 现在整合下ssh2+Compass
网上找了很多资料 都没一个完整的demo 本人写的demo供大家分享 一步到位
希望可以让大家少走点弯路 如果ssh2都不会整合的 我就不多说了
step1
在ssh2的基础上开发 加入jar包(compass-2.1.2.jar compass-index-patch.jar
lucene-analyzers-2.4.0.jar lucene-core-2.4.0.jar lucene-highlighter-2.4.0.jar paoding-analysis.jar
)
step2
先来看下实体bean的编写
step3属性文件Product.hbm.xml
要使用Compass必须加入一个applicationContext-compass.xml文件,文件名可以自行定义 这个就不用说了 废话
step4applicationContext-compass.xml:
中间都有注解 就不多解释了
下面来编写dao及dao的实现以及severce层
step5
servece
servece的实现
所有的都做完了
现在编写jsp页面
step6
insertProduct.jsp
step7
编写action
step8关于Struts2的配置文件如下
如果插入成功就跳转到insertOk。jsp
step9到此所有准备工作都做完了
下面来看下 spring的配置文件applicationContext.xml 和web.xml
web.xml
applicationContext.xml
到此已经可以测试了
测试完插入之后,所有准备工作都已完成 现在我们来测下搜索
search.jap
搜索后的结果页面
searchResults.jsp
step10
另外得说下,该项目见索引的过程:服务器启动把需要建立索引的表的数据全部取出建立索引
在项目运行过程中,插入数据,容器检测到索引有变动,添加索引,这个可以自己测试
为此 要添加另外一个类:该类就是专门建索引用 注意包的位置
CompassIndexBuilder
本项目中用的是paoding-analyzer
所以请在src目录下增加paoding-dic-home.properties文件
over
ok 到此结束 恭喜你 你已经可以轻松的给自己的项目加上索引功能了
网上找了很多资料 都没一个完整的demo 本人写的demo供大家分享 一步到位
希望可以让大家少走点弯路 如果ssh2都不会整合的 我就不多说了
step1
在ssh2的基础上开发 加入jar包(compass-2.1.2.jar compass-index-patch.jar
lucene-analyzers-2.4.0.jar lucene-core-2.4.0.jar lucene-highlighter-2.4.0.jar paoding-analysis.jar
)
step2
先来看下实体bean的编写
package com.v512.example.model; import org.compass.annotations.*; /** * Product entity. * * @author MyEclipse Persistence Tools */ @Searchable public class Product implements java.io.Serializable { // Fields @SearchableId private String id; @SearchableProperty(name="name",index=Index.ANALYZED,store=Store.YES) private String name; @SearchableProperty(name="price",index=Index.NOT_ANALYZED,store=Store.YES) private Double price; @SearchableProperty(name="brand",index=Index.ANALYZED,store=Store.YES) private String brand; @SearchableProperty(name="description",index=Index.ANALYZED,store=Store.YES) private String description; // Constructors /** default constructor */ public Product() { } /** full constructor */ public Product(String name, Double price, String brand, String description) { this.name = name; this.price = price; this.brand = brand; this.description = description; } // Property accessors public String getId() { return this.id; } public void setId(String id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Double getPrice() { return this.price; } public void setPrice(Double price) { this.price = price; } public String getBrand() { return this.brand; } public void setBrand(String brand) { this.brand = brand; } public String getDescription() { return this.description; } public void setDescription(String description) { this.description = description; } }
step3属性文件Product.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.v512.example.model.Product" table="PRODUCT" > <id name="id" type="java.lang.String"> <column name="ID" length="40" /> <generator class="uuid.hex" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="80" /> </property> <property name="price" type="java.lang.Double"> <column name="PRICE" precision="6" /> </property> <property name="brand" type="java.lang.String"> <column name="BRAND" length="40" /> </property> <property name="description" type="java.lang.String"> <column name="DESCRIPTION" length="2000" /> </property> </class> </hibernate-mapping>
要使用Compass必须加入一个applicationContext-compass.xml文件,文件名可以自行定义 这个就不用说了 废话
step4applicationContext-compass.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" default-lazy-init="true"> <!-- 配置compass的注解功能 --> <bean id="annotationConfiguration" class="org.compass.annotations.config.CompassAnnotationsConfiguration"> </bean> <bean id="compass" class="org.compass.spring.LocalCompassBean"> <!-- 配置需要索引的实体映射文件的路径 --> <property name="resourceDirectoryLocations"> <list> <value>classpath:com/v512/example/model</value> </list> </property> <!-- 设置存放索引的路径 --> <property name="connection"> <value>/lucene/indexes</value> </property> <!--配置要搜索的类,作用:会根据以下的类建立索引 --> <property name="classMappings"> <list> <value>com.v512.example.model.Product</value> </list> </property> <property name="compassConfiguration" ref="annotationConfiguration" /> <!--compass的一些属性设置 --> <property name="compassSettings"> <props> <prop key="compass.transaction.factory"> org.compass.spring.transaction.SpringSyncTransactionFactory </prop> <prop key="compass.engine.analyzer.MMAnalyzer.CustomAnalyzer">net.paoding.analysis.analyzer.PaodingAnalyzer </prop> </props> </property> <!--compass的事务管理器 --> <property name="transactionManager" ref="transactionManager" /> </bean> <bean id="hibernateGpsDevice" class="org.compass.gps.device.hibernate.HibernateGpsDevice"> <property name="name"> <value>hibernateDevice</value> </property> <property name="sessionFactory" ref="sessionFactory" /> <property name="mirrorDataChanges"> <value>true</value> </property> </bean> <!-- 同步更新索引 --> <bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop"> <property name="compass" ref="compass" /> <property name="gpsDevices"> <list> <bean class="org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper"> <property name="gpsDevice" ref="hibernateGpsDevice" /> </bean> </list> </property> </bean> <bean id="compassTemplate" class="org.compass.core.CompassTemplate"> <property name="compass" ref="compass" /> </bean> <!-- 定时重建索引(利用quartz)或随Spring ApplicationContext启动而重建索引 --> <bean id="compassIndexBuilder" class="com.v512.example.service.impl.CompassIndexBuilder" lazy-init="false"> <property name="compassGps" ref="compassGps" /> <property name="buildIndex" value="true" /> <property name="lazyTime" value="10" /> </bean> </beans>
中间都有注解 就不多解释了
下面来编写dao及dao的实现以及severce层
step5
package com.v512.example.dao; import java.util.List; import com.v512.example.model.Product; public interface ProductDao { public void create(Product p); public Product getProduct(String id); public List getProducts(); public void update(Product product); public void remove(String id); }
package com.v512.example.dao.hibernate; import java.util.List; import com.v512.example.dao.ProductDao; import com.v512.example.model.Product; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class ProductDaoHibernate extends HibernateDaoSupport implements ProductDao { public void create(Product p) { getHibernateTemplate().save(p); } public Product getProduct(String id) { return (Product)getHibernateTemplate().get(Product.class, id); } public List getProducts() { return getHibernateTemplate().find("from Product order by id desc"); } public void remove(String id) { getHibernateTemplate().delete(getProduct(id)); } public void update(Product product) { getHibernateTemplate().saveOrUpdate(product); } }
servece
package com.v512.example.service; import java.util.List; import com.v512.example.model.Product; public interface ProductManager { public void insertProduct(Product p); public Product findProdcut(String id); public List searchProducts(String queryString); }
servece的实现
package com.v512.example.service.impl; import java.util.ArrayList; import java.util.List; import org.compass.core.CompassHits; import org.compass.core.CompassSession; import org.compass.core.CompassTemplate; import org.compass.core.CompassTransaction; import com.v512.example.dao.ProductDao; import com.v512.example.model.Product; import com.v512.example.service.ProductManager; import org.compass.core.Compass; public class ProductManagerImpl implements ProductManager { private ProductDao productDao; private CompassTemplate compassTemplate; public void setCompassTemplate(CompassTemplate compassTemplate){ this.compassTemplate=compassTemplate; } public void setProductDao(ProductDao productDao){ this.productDao=productDao; } public Product findProdcut(String id) { return productDao.getProduct(id); } public void insertProduct(Product p) { productDao.create(p); } public List searchProducts(String queryString) { Compass compass = compassTemplate.getCompass(); CompassSession session=compass.openSession(); List list = new ArrayList(); //这里不需要开启事务了,因为在调用这个方法之前就已经开启了事务 CompassHits hits= session.queryBuilder().queryString("name:"+queryString).toQuery().hits(); System.out.println("queryString:"+queryString); System.out.println("hits:"+hits.getLength()); for(int i=0;i<hits.length();i++){ Product hit=(Product)hits.data(i); list.add(hit); } return list; } public CompassTemplate getCompassTemplate() { return compassTemplate; } }
所有的都做完了
现在编写jsp页面
step6
insertProduct.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link href="style/oa.css" rel="stylesheet" type="text/css"> <title>添加信息</title> </head> <body> <center> <s:form action="insert.action" theme="simple"> <TABLE class="tableEdit" border="0" cellspacing="1" cellpadding="0" style="width:300px;"> <TBODY> <TR> <td align="center" class="tdEditTitle">添加商品名称</TD> </TR> <TR> <td> <table class="tableEdit" style="width:300px;" cellspacing="0" border="0" cellpadding="0"> <tr> <td class="tdEditLabel" >商品名称</td> <td class="tdEditContent"><s:textfield name="product.name" label="名称" /></td> </tr> <tr> <td class="tdEditLabel" >商品品牌</td> <td class="tdEditContent"><s:textfield name="product.brand" label="品牌" /></td> </tr> <tr> <td class="tdEditLabel" >商品价格</td> <td class="tdEditContent"><s:textfield name="product.price" label="价格" /></td> </tr> <tr> <td class="tdEditLabel" >商品描述</td> <td class="tdEditContent"><s:textarea name="product.description" label="描述" /> </td> </tr> <tr> <td> </td> <td><s:submit/> <br></td> </tr> </table> </td> </TR> </TBODY> </TABLE> </s:form> </center> </body> </html>
step7
编写action
package com.v512.example.action; import java.util.List; import com.opensymphony.xwork2.ActionSupport; import com.v512.example.model.Product; import com.v512.example.service.ProductManager; import org.apache.struts2.ServletActionContext; public class ProductAction extends ActionSupport { private static final long serialVersionUID = 3795048906805728732L; private ProductManager productManager; private Product product; private String queryString; public void setQueryString(String queryString){ this.queryString=queryString; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } public void setProductManager(ProductManager productManager){ this.productManager=productManager; } public String insert(){ productManager.insertProduct(product); return SUCCESS; } public String search(){ List results=productManager.searchProducts(queryString); System.out.println(results.size()); ServletActionContext.getRequest().setAttribute("searchresults", results); return SUCCESS; } }
step8关于Struts2的配置文件如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.objectFactory" value="spring" /> <include file="struts-default.xml"/> <package name="product" extends="struts-default" namespace="/product"> <!-- 配置Struts2的Action,class值要与applicationContext*.xml中的id的值一致。 --> <action name="insert" class="productBean" method="insert"> <result >insertOk.jsp</result> </action> <action name="search" class="productBean" method="search"> <result >searchResults.jsp</result> </action> </package> </struts>
如果插入成功就跳转到insertOk。jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 添加商品成功! </body> </html>
step9到此所有准备工作都做完了
下面来看下 spring的配置文件applicationContext.xml 和web.xml
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!--定义Spring的配置的位置,可以定义多个配置文件,可以使用通配符。 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml</param-value> </context-param> <!--设置一起动当前的Web应用,就加载Spring,让Spring管理Bean--> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!--解决Hibernate延迟加载出现的问题,需要放到struts2过滤器之前--> <filter> <filter-name>lazyLoadingFilter</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter> <!--Struts2的过滤器,使用Struts2,必须配置该项--> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <!--解决Hibernate延迟加载出现的问题,仍需要放到struts2过滤器mapping之前--> <filter-mapping> <filter-name>lazyLoadingFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <!--Struts2的过滤器,配套的filter-mapping--> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd" default-lazy-init="true"> <!-- mysql数据库 :定义数据源的Bean ,给Hibernate的sessionFactory --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ssh2compass?useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="1"/> <!-- 连接池的最大值 --> <property name="maxActive" value="500"/> <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="2"/> <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="1"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources"> <list> <value>com/v512/example/model/Product.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQL5Dialect hibernate.hbm2ddl.auto=update hibernate.show_sql=false hibernate.format_sql=false hibernate.cache.use_second_level_cache=true hibernate.cache.use_query_cache=false hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider </value> </property> </bean> <!-- oracle数据库 :定义数据源的Bean ,给Hibernate的sessionFactory--> <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@192.168.1.3:1521:ora9"> </property> <property name="username" value="scott"></property> <property name="password" value="tiger"></property> </bean> --> <!-- 定义Hibernate的sessionFactory,通过该Bean,可以获得Hibernate的Session--> <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> <prop key="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider </prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value> com/v512/example/model/Product.hbm.xml </value> </list> </property> </bean> --> <bean id="productDao" class="com.v512.example.dao.hibernate.ProductDaoHibernate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="productManager" class="com.v512.example.service.impl.ProductManagerImpl"> <property name="productDao" ref="productDao"></property> <property name="compassTemplate" ref="compassTemplate"></property> </bean> <bean id="productBean" class="com.v512.example.action.ProductAction" scope="prototype"> <property name="productManager" ref="productManager"></property> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <!-- 配置事务特性 ,配置add、delete和update开始的方法,事务传播特性为required--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="insert*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="*" read-only="true"/> </tx:attributes> </tx:advice> <!-- 配置那些类的方法进行事务管理,当前cn.com.jobedu.oa.service包中的子包、类中所有方法需要,还需要参考tx:advice的设置 --> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution (* com.v512.example.service.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/> </aop:config> </beans>
到此已经可以测试了
测试完插入之后,所有准备工作都已完成 现在我们来测下搜索
search.jap
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <s:form action="search.action" method="post"> <s:textfield name="queryString" label="搜索产品"/> <s:submit></s:submit> </s:form> </body> </html>
搜索后的结果页面
searchResults.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.List" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% if(((List)request.getAttribute("searchresults")).size()==0){ %> no results found. <%} %> <table border="1"> <s:iterator value="#request.searchresults"> <tr><td> <s:property value="name"/> </td> <td> <s:property value="price"/></td> <td> <s:property value="brand"/></td> <td> <s:property value="description"/></td> </tr> </s:iterator> </table> </body> </html>
step10
另外得说下,该项目见索引的过程:服务器启动把需要建立索引的表的数据全部取出建立索引
在项目运行过程中,插入数据,容器检测到索引有变动,添加索引,这个可以自己测试
为此 要添加另外一个类:该类就是专门建索引用 注意包的位置
CompassIndexBuilder
package com.v512.example.service.impl; import org.compass.gps.CompassGps; import org.springframework.beans.factory.InitializingBean; /** * 通过quartz定时调度定时重建索引或自动随Spring ApplicationContext启动而重建索引的Builder. * 会启动后延时数秒新开线程调用compassGps.index()函数. * 默认会在Web应用每次启动时重建索引,可以设置buildIndex属性为false来禁止此功能. * 也可以不用本Builder, 编写手动调用compassGps.index()的代码. * */ public class CompassIndexBuilder implements InitializingBean { // 是否需要建立索引,可被设置为false使本Builder失效. private boolean buildIndex = false; // 索引操作线程延时启动的时间,单位为秒 private int lazyTime = 10; // Compass封装 private CompassGps compassGps; // 索引线程 private Thread indexThread = new Thread() { @Override public void run() { try { Thread.sleep(lazyTime * 1000); System.out.println("begin compass index..."); long beginTime = System.currentTimeMillis(); // 重建索引. // 如果compass实体中定义的索引文件已存在,索引过程中会建立临时索引, // 索引完成后再进行覆盖. compassGps.index(); long costTime = System.currentTimeMillis() - beginTime; System.out.println("compss index finished."); System.out.println("costed " + costTime + " milliseconds"); } catch (InterruptedException e) { e.printStackTrace(); } } }; /** * 实现<code>InitializingBean</code>接口,在完成注入后调用启动索引线程. * * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ public void afterPropertiesSet() throws Exception { if (buildIndex) { //设置为后台线程 indexThread.setDaemon(true); indexThread.setName("Compass Indexer"); indexThread.start(); } } public void setBuildIndex(boolean buildIndex) { this.buildIndex = buildIndex; } public void setLazyTime(int lazyTime) { this.lazyTime = lazyTime; } public void setCompassGps(CompassGps compassGps) { this.compassGps = compassGps; } }
本项目中用的是paoding-analyzer
所以请在src目录下增加paoding-dic-home.properties文件
paoding.dic.home=C:/paoding/dic paoding.dic.detector.interval=60
over
ok 到此结束 恭喜你 你已经可以轻松的给自己的项目加上索引功能了
发表评论
-
ANT合并多个第三方包
2015-06-18 16:31 913<project name="cmgr.ivy ... -
jsp国际化处理方式
2014-11-21 10:12 583示例标签: <fmt:message key=&quo ... -
gamecard
2013-07-16 23:37 692的地方的的方式个地方 -
支付
2013-05-06 23:12 674发到飞肥嘟嘟发的发的 -
marven
2013-05-05 23:12 729行业应用管理 -
框架开发
2013-03-21 20:25 758框架开发 版本1.0 -
框架开发
2013-03-21 00:25 0框架开发版本1 -
JavaMail的邮件实例
2011-01-26 16:35 1089简单的邮件实例 package com.wzh.mail ... -
xml解析
2010-11-24 23:32 1207只是供自己参考 import java.io.F ... -
自定义标签的编写
2010-10-20 23:45 1270编写处理类 package com.o ... -
ssh整合的web配置顺序解析
2010-10-20 21:01 2410web.xml的一份模板 整合ssh2+dwr <? ... -
web中的dao模板
2010-07-31 01:08 1612在web项目中 我们可能会针对每一个实体写一个dao ... -
MVC面试题:有了stuts的mvc为什么还要spring的mvc
2010-07-28 19:33 23598今天一同学 去面试 关于mvc的面试题 面试官问道:有了st ... -
ssh2整合问题+ssh2源代码下载
2010-07-13 19:29 3934[/b]整合sreuts2.1.8+hibernate3.2+ ... -
利用组件分页
2010-06-13 14:22 1166. 如何分页? 1.把pager-taglib.jar ...
相关推荐
struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0 包含所有jar包,按readme.txt导入并运行即可 开始不用分了................
struts2+spring3+hibernate3+compass实现全文检索功能,希望对初学者有所帮助!
在"struts2+spring2.5+hibernate3.26+compass2.1搜索引擎简单实现"这个项目中,首先你需要配置Struts2、Spring和Hibernate,确保它们能正常工作。这包括编写相应的配置文件(如struts.xml、spring-context.xml、...
标题 "compass-2.2.0+hibernate-3.2+struts-2.1.8.1+spring-framework-2.5.4" 指的是一个集成开发环境,它结合了四个关键的技术组件:Compass、Hibernate、Struts 2 和 Spring Framework,这些都是Java Web开发中的...
spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合
标题 "spring + hibernate + struts2 + compass2.1" 暗示了这是一个关于构建基于Java的Web应用程序的经典组合。在这个框架中,Spring作为核心的依赖注入(DI)和面向切面编程(AOP)容器,Hibernate是用于对象关系...
整合这些技术时,开发者通常会创建一个综合的配置文件体系,例如Spring的配置文件可以管理所有组件的依赖和配置,通过引入Struts、Hibernate、JPA、Lucene、JBPM和Compass的相关配置。这需要对每个框架的原理有深入...
在本项目中,"JAVA 全文搜索 struts2+spring+hibernate+compass整合记录" 是一个关于如何在Java环境下集成四个关键组件来实现全文搜索引擎的实践教程。Struts2是一个流行的MVC框架,Spring是核心的依赖注入框架,...
本资源是struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0整合实例,可以为初学入门者,提供个参考,本人也是网上找的,感觉很不错(因其中所用的jar文件太大,无法上传,大家可以自己添加各框架...
总结来说,这个项目展示了如何通过整合Struts2、Hibernate、Spring和Compass,构建一个具备全文检索功能的Java Web应用。这样的架构不仅实现了业务逻辑和数据访问的解耦,还提高了数据查询的性能,为用户提供了一种...
通过以上步骤和技巧,我们可以将Compass有效地集成到Struts2、Spring和Hibernate的环境中,实现高效、强大的全文搜索功能。这将极大地提升Web应用的用户体验,特别是对于内容丰富的网站或信息管理系统,全文搜索功能...
使用compass+lucene实现简单的全文...里面整合了spring2.5、hibernate3.2、struts2.0,是对数据库进行全文检索的一个非常好的demo的所有jar包组合! 对研究基于数据库检索的java开源搜索引擎的朋友有很大的参考价值
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,用于构建高效、可扩展的企业级应用程序。Compass是一个基于Lucene的全文搜索引擎库,它简化了在Java应用中集成全文检索的功能。本教程将重点讲解...
在这个实例中,"TestCompass"可能是包含具体代码和配置文件的测试项目,用于演示如何将STRUTS、SPRING、HIBERNATE和COMPASS集成。开发者可能需要创建Action类来处理业务逻辑,配置Spring的bean来管理依赖,设置...
标题中的"S2SH+compass"指的是使用Struts2(S),Spring(S)和Hibernate(H)这三种开源框架的组合,再加上Compass搜索引擎库来实现一个网站内部的全文检索功能。这种组合常见于Java Web开发中,用于构建复杂、高...
SSH2+Compass2.2搜索实例是一个基于Java Web开发的综合项目,它结合了Struts2.2.3、Spring 3.0.6、Hibernate3.6以及Compass2.2这四个核心技术,旨在提供一个高效且灵活的搜索功能。这个完整的工程是一个很好的学习...
Struts2-Spring-Compass 是一个典型的Java企业级应用框架整合示例,它结合了Struts2、Spring3和Hibernate三大主流框架,并利用Compass实现了全文检索功能。这个项目基于Lucene 2.4.1,一个强大的全文搜索引擎库,...
标题中的“compass+ssh2集成 hibernategps问题”指的是在Java开发中,开发者尝试将Compass搜索引擎库与SSH2(Spring、Struts和Hibernate)框架整合时遇到的问题,特别是与Hibernate的GPS(Global Persistent ...