Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2879871
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Java

2012-03-13 21:27:32

1、先集成spring与hibernate(与上一节讲的相同) 文件beans.xml

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns=""
  3.        xmlns:xsi=""
  4.        xmlns:context=""
  5.        xmlns:aop=""
  6.        xmlns:tx=""
  7.        xsi:schemaLocation="
  8.            /spring-beans-2.5.xsd
  9.             /spring-context-2.5.xsd
  10.             /spring-aop-2.5.xsd
  11.             /spring-tx-2.5.xsd">
  12.      <context:annotation-config/>
  13.      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  14.      <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>
  15.      <property name="url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&characterEncoding=UTF-8"/>
  16.      <property name="username" value="root"/>
  17.      <property name="password" value="123456"/>
  18.      <!-- 连接池启动时的初始值 -->
  19.          <property name="initialSize" value="1"/>
  20.          <!-- 连接池的最大值 -->
  21.          <property name="maxActive" value="500"/>
  22.          <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
  23.          <property name="maxIdle" value="2"/>
  24.          <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
  25.          <property name="minIdle" value="1"/>
  26.      </bean>
  27.     
  28.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  29.      <property name="dataSource" ref="dataSource"/>
  30.          <property name="mappingResources">
  31.          <list>
  32.          <value>cn/itcast/bean/Person.hbm.xml</value>
  33.          </list>
  34.          </property>
  35.      <property name="hibernateProperties">
  36.          <value>
  37.          hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
  38.          hibernate.hbm2ddl.auto=update
  39.          hibernate.show_sql=false
  40.          hibernate.format_sql=false
  41.          hibernate.cache.use_second_level_cache=true
  42.             hibernate.cache.use_query_cache=false
  43.              hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
  44.          </value>
  45.      </property>
  46.     </bean>
  47.     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  48.          <property name="sessionFactory" ref="sessionFactory"/>
  49.     </bean>
  50.     <tx:annotation-driven transaction-manager="txManager"/>
  51.     <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean"/>
  52.     <bean id="personList" class="cn.itcast.web.PersonAction"/>
  53. </beans>
2、配置struts2(struts.xml)

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4.     "">
  5. <struts>
  6.     <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
  7.     <constant name="struts.i18n.encoding" value="UTF-8"/>
  8.     <!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
  9.     如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
  10.     <constant name="struts.action.extension" value="do"/>
  11.     <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
  12.     <constant name="struts.serve.static.browserCache" value="false"/>
  13.     <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
  14.     <constant name="struts.configuration.xml.reload" value="true"/>
  15.     <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
  16.     <constant name="struts.devMode" value="true" />
  17.      <!-- 默认的视图主题 -->
  18.     <constant name="struts.ui.theme" value="simple" />
  19.     <!-- action这些对象是由spring来负责创建 -->
  20.     <constant name="struts.objectFactory" value="spring" />
  21.     
  22.      <package name="person" namespace="/person" extends="struts-default">
  23.          <global-results>
  24.              <result name="message">/WEB-INF/page/message.jsp</result>
  25.          </global-results>
  26.         <action name="action_*" class="personList" method="{1}">
  27.             <result name="list">/WEB-INF/page/personlist.jsp</result>
  28.             <result name="add">/WEB-INF/page/addperson.jsp</result>
  29.         </action>
  30.     </package>
  31. </struts>

3、把spring 与struts2注册到web容器中
 

通过listener实例化spring容器,这个实例放到什么范围里面去,放到servletContext对象去,那么应用一开始他就创建,应用关闭它才销毁。


点击(此处)折叠或打开

  1. 在web容器中实例化spring容器,

  2. <!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -->
  3. <context-param>
  4.    <param-name>contextConfigLocation</param-name>
  5.    <param-value>classpath:beans.xml</param-value>
  6. </context-param>
  7. <!-- 对Spring容器进行实例化 -->
  8. <listener>
  9.       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  10. </listener>
在web容器中配置struts2

点击(此处)折叠或打开



  1. <servlet>
  2.     <servlet-name>struts</servlet-name>
  3.     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  4.     <init-param>
  5.         <param-name>config</param-name>
  6.         <param-value>/WEB-INF/struts-config.xml</param-value>
  7.     </init-param>
  8.     <load-on-startup>0</load-on-startup>
  9. </servlet>
  10. <servlet-mapping>
  11.     <servlet-name>struts</servlet-name>
  12.     <url-pattern>*.do</url-pattern>
  13. </servlet-mapping>

使用spring解决hibernate因session关闭导致的延迟加载例外问题


点击(此处)折叠或打开


  1. <filter>
  2.         <filter-name>OpenSessionInViewFilter</filter-name>
  3.         <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6.         <filter-name>OpenSessionInViewFilter</filter-name>
  7.         <url-pattern>/*</url-pattern>
  8. </filter-mapping>

web.xml


点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3.     xmlns=""
  4.     xmlns:xsi=""
  5.     xsi:schemaLocation="
  6.     /web-app_2_4.xsd">
  7.       <context-param>
  8.      <param-name>contextConfigLocation</param-name>
  9.      <param-value>classpath:beans.xml</param-value>
  10.     </context-param>
  11.     <!-- 对Spring容器进行实例化 -->
  12.     <listener>
  13.      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  14.     </listener>
  15.     
  16.     <filter>
  17.         <filter-name>struts2</filter-name>
  18.         <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  19.     </filter>
  20.     <filter-mapping>
  21.         <filter-name>struts2</filter-name>
  22.         <url-pattern>/*</url-pattern>
  23.    </filter-mapping>
  24.     <filter>
  25.      <filter-name>OpenSessionInViewFilter</filter-name>
  26.      <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  27.     </filter>
  28.     <filter-mapping>
  29.      <filter-name>OpenSessionInViewFilter</filter-name>
  30.      <url-pattern>/*</url-pattern>
  31.     </filter-mapping>
  32.   <welcome-file-list>
  33.     <welcome-file>index.jsp</welcome-file>
  34.   </welcome-file-list>
  35. </web-app>

 

 
 
 
阅读(672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~