- 浏览: 13098 次
- 性别:
- 来自: 上海
文章分类
最新评论
SSH集成配置总结
Struts1.x+Spring2.5+Hibernate3.2集成时各配置文件配置方法:
1、web.xml配置文件应有如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 在这里配置服务启动时加载spring配置文件applicationContext*.xml -->
<!-- spring Bean上下文监听器使用以下context-param获得spring配置文件的路径集合 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/application*.xml</param-value>
</context-param>
<!-- 配置OpenSessionInView过滤器(作用让hibernate的session不至过早关闭,使其作用域在一个请求范围内) -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<!-- 配置Spring中的编码过滤器(防止乱码) -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<!-- 以下为自定义的一些filter等-->
<!-- 员工登录filter -->
<filter>
<filter-name>AdminOnlineFilter</filter-name>
<filter-class>com.xasxt.ssh.web.filter.AdminOnlineFilter</filter-class>
</filter>
<!-- 客户登录Filter -->
<filter>
<filter-name>ClientOnlineFilter</filter-name>
<filter-class>com.xasxt.ssh.web.filter.ClientOnlineFilter</filter-class>
</filter>
<!-- 配置分页过滤器 -->
<filter>
<filter-name>PageFilter</filter-name>
<filter-class>com.xasxt.ssh.web.filter.PageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PageFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ClientOnlineFilter</filter-name>
<url-pattern>/client/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AdminOnlineFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring Bean上下文监听器,用于加载Beanfactory实例到ServletContext中 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Standard Action Servlet Configuration -->
<!-- Struts1.x中的servlet配置-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-admin.xml,/WEB-INF/struts-client.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- 配置DWR -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 配置错误页面 -->
<error-page>
<error-code>401</error-code>
<location>/401.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2、Spring配置如下:
<?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/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!--事务配置开始 -->
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!--配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!--配置事务管理的特性(隔离级别,传播特性...) -->
<tx:advice id="transAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!-- 配置切面,把事务管理advice和切入点组到一起 -->
<aop:config>
<aop:pointcut expression="execution(* com.xasxt.ssh.manager.impl.*.*(..))" id="managerpc"/>
<aop:advisor advice-ref="transAdvice" pointcut-ref="managerpc"/>
</aop:config>
<!--事务配置结束 -->
如果我们不用上面绿色发光字体的那部分内容的话,我们还可以用下面的方法配置数据库层管理(不用hibernate.cfg.xml)
<!--
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/sshonline"/>
<property name="username" value="root"/>
<property name="password" value="tpfpcwl"/>
</bean>
<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.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/fei/ssh/entity/Client.hbm.xml</value>
<value>com/fei/ssh/entity/CommonProp.hbm.xml</value>
<value>com/fei/ssh/entity/Employee.hbm.xml</value>
<value>com/fei/ssh/entity/Question.hbm.xml</value>
<value>com/fei/ssh/entity/QuestionOption.hbm.xml</value>
<value>com/fei/ssh/entity/SurveyPlan.hbm.xml</value>
<value>com/fei/ssh/entity/SurveyQuestion.hbm.xml</value>
<value>com/fei/ssh/entity/SurveyReport.hbm.xml</value>
<value>com/fei/ssh/entity/SurveyResult.hbm.xml</value>
<value>com/fei/ssh/entity/SendSurvey.hbm.xml</value>
</list>
</property>
</bean>
-->
</beans>
下面是其它的一些配置(可有可无)
<!-- 配置注解注入 -->
<aop:aspectj-autoproxy/>
<!-- 日志记录配置 -->
<bean id="logAdvice" class="com.fei.ssh.log.LogAdvice"></bean>
<!-- 邮件发送的配置方式 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="defaultEncoding" value="utf-8" />
<property name="host" value="smtp.sogou.com" />
<property name="javaMailProperties">
<props>
<!-- 如果要使用用户名和密码验证,这一步需要 -->
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
<property name="username" value="tests0901"/>
<property name="password" value="tests0901"/>
</bean>
<bean id="mailUtil" class="com.fei.ssh.mail.MailUtil">
<property name="mail" ref="mailSender"></property>
</bean>
<!--自己bean注入配置方式 -->
<!--
<bean id="userDAO" class="com.fei.ssh.dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="userBiz" class="com.fei.ssh.biz.UserBiz">
<property name="userDao">
<ref bean="userDAO" />
</property>
</bean>
-->
3、hibernate的配置:
如果不用Spring管理hibernate的配置,我们就需要有下面的hibernate.cfg.xml文件的配置:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hql_info?createDatabaseIfNotExist=true</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<!-- 配置二级缓存 -->
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- 打开二级缓存的另一种配置
<property name="cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.OSCacheProvider</property>
-->
<!-- 打开Query的二级缓存(要慎重) -->
<property name="hibernate.cache.use_query_cache">true</property>
<!-- 打开二级缓存的统计功能 -->
<property name="hibernate.generate_statistics">true</property>
<!--映射文件配置 -->
<mapping resource="com/xasxt/entity/User.hbm.xml"/>
<mapping resource="com/xasxt/entity/Document.hbm.xml"/>
<!-- 针对某一实体类配置开启二级缓存(也可在各自实体映射文件中进行配置开启) -->
<class-cache usage="read-only" class="com.xasxt.entity.User"/>
<!-- 对User的save进行事件监听,当保存时触发该事件,第一个listener如果不配的话将无法保存。 -->
<event type="save">
<listener class="org.hibernate.event.def.DefaultSaveOrUpdateEventListener"/>
<listener class="com.fei.hibernate.SaveListener"/>
</event>
</session-factory>
</hibernate-configuration>
4、DWR与SSH集成方案:
<?xml version="1.0" encoding="UTF-8"?>
<dwr>
<allow>
<convert converter="bean" match="com.xasxt.ajaxdwr.StudentVO"/>
<!--普通方式使用DWR的配置方式 -->
<create creator="new" javascript="demo1">
<param name="class" value="com.xasxt.ajaxdwr.StudentBiz"/>
<exclude method="getCities"/>
</create>
<!-- 与spring结合-->
<create creator="spring" javascript="intro">
(说明:spring中配置的bean的name应与这里的value相同:<bean name="hello" class="com.xasxt.springdwr.DwrSpringTestBean"/>。页面上即可用intro.方法名 调用spring管理的业务类的方法)
<param name="beanName" value="hello"/>
</create>
</allow>
</dwr>
对于Struts1.x+Spring2.5+Hibernate3.x的配置总结就先到此。
有时间再续......
相关推荐
ssh,ssh集成,ssh,ssh集成 ssh集成
配置 SSH 集成
SSH框架集成的配置方法SSH框架集成的配置方法SSH框架集成的配置方法SSH框架集成的配置方法
ssh标准配置ssh标准配置ssh标准配置
办公自动化系统办公自动化系统办公自动化系统办公自动化系统办公自动化系统
ssh 集成方式说明
ssh配置文件ssh配置文件ssh配置文件ssh配置文件
SSH 零配置例子
ssh集成的权限管理板块,有一定的创新性,使用与ssh集成框架的java人员参考。
SSH集成框架(源码) 需要的同学自己下载参考!!
H3C 5500 ssh登录配置方式的配置命令。
图解SSH框架配置步骤 图解SSH框架配置步骤
本项目是由一个简单的例子,贯穿SSH的集成。并且使用java的高级特性Annotation(注解),对框架进行零配置。
解决的问题为 git 配置多个ssh key 我们配置好两个 sshkey 后 分别为两个 如果是 github.com gitlab.com gitee.com 这三个当然没有问题 开发此工具碰到的问题是 开发者碰到同一代码托管平台 来自多个账号的 sshkey ...
开发Struts2、Hibernate、Spring集成程序 Myeclipse8.6下struts2.1 spring2.5 hibernate3.2整合图解
ssh框架错误总结
ssh集成框架
SSH框架集成详解SSH框架集成详解 SSH框架集成详解SSH框架集成详解
一、ssh服务器安装 1).我们使用免费软件freeSSHd。... 2)安装完成后进入配置界面, (1)Server State中确保SSH服务已打开 如果此处出现不能打开的情况,在SSH界面将Start SSH server on ...(4)在Linux客户端ssh配置,参
图解SSH集成 图解SSH集成 图解SSH集成 图解SSH集成 图解SSH集成 图解SSH集成