`
wjjbfq
  • 浏览: 82115 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 总结04

阅读更多

Ssh整合Spring2.5+Hibernate3.3+Struts1.3整合开发

 

hibernate核心安装包下的:

hibernate3.jar

lib\required\*.jar

lib\optional\ehcache-1.2.3.jar

hibernate 注解安装包下的

lib\test\slf4j-log4j12.jar

Spring安装包下的

dist\spring.jar

dist\modules\spring-webmvc-struts.jar

lib\jakarta-commons\commons-logging.jarcommons-dbcp.jarcommons-pool.jar

lib\aspectj\aspectjweaver.jaraspectjrt.jar

lib\cglib\cglib-nodep-2.1_3.jar

lib\j2ee\common-annotations.jar

lib\log4j\log4j-1.2.15.jar

Struts

下载struts-1.3.8-lib.zip,需要使用到解压目录下的所有jar,建议把jstl-1.0.2.jarstandard-1.0.2.jar更换为1.1版本。Spring中已经存在一个antlr-2.7.6.jar,所以把struts中的antlr-2.7.2.jar删除,避免jar冲突。

数据库驱动jar

 

**************************************************

Springhibernate

beans.xml配置文件

<!-- 1 spring整合hibernate的入口 创建本地化sessionFactory 加载hibernate.cfg.xml --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> </bean> <!--2 创建hibernate模板 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!-- 3 配置hibernate的事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <!-- 4 定义通知 --> <tx:advice id="txadvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT"/> <tx:method name="*" read-only="true"/> </tx:attributes> </tx:advice> <!-- 5 配置切面 --> <aop:config> <aop:pointcut id="personPointcut" expression="execution(* com.itcast.service..*.*(..))"/> <aop:advisor advice-ref="txadvice" pointcut-ref="personPointcut"/> </aop:config> <!-- *********************业务层和dao层的配置*******--> <!-- 配置dao层 --> <bean id="personDao" class="com.itcast.dao.impl.PersonDaoImpl"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate"/> </property> </bean> <!-- 配置业务层 --> <bean id="personService" class="com.itcast.service.impl.PersonServiceImpl"> <property name="personDao"> <ref bean="personDao"/> </property> </bean> <!-- 配置struts action 整合struts时用 --> <bean name="/personAction" class="com.itcast.web.action.PersonAction"> <property name="personService"> <ref bean="personService"/> </property> </bean>



 

 

 *****************************************************************

struts1.3+Spring2.5整合开发(xml方式)

<!1   配置struts-config.xml文件-->

<struts-config>  

<form-beans>

 <form-bean name="personForm" type="com.itcast.web.form.PersonForm" /> 

</form-beans>

    <action-mappings>

     <action path="/personAction" name="personForm" scope="request" parameter="method

               type=com.itcast.web.action.PersonAction>

            <forward name="success" path="/success.jsp" />

       </action>

</action-mappings>

<!-- 把对strutsaction的请求委托给spring容器管理,springcontext配置文件中查找 -->

  <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />

    <message-resources parameter="MessageResources" />

</struts-config>

<!2   springbeans.xml文件中   配置struts action 的映射.name属性的值要与struts-config.xml文件中action元素的path属性相同,action交给spring管理后,我们可以使用依赖注入在action中注入业务层的bean -->

   <bean name="/personAction" class="com.itcast.web.action.PersonAction">

       <property name="personService">

         <ref bean="personService"/>

       </property>

   </bean>

 <!--3   struts-config.xml文件配置请求委托

             在struts配置文件中添加进spring的请求控制器,该请求控制器会先根据actionpath属性值到  spring容器中寻找跟该属性值同名的bean。如果寻找到即使用该bean处理用户请求-->

方法一    

<controller  processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />

方法二

 <controller> <set-property property="processorClass“

           value="org.springframework.web.struts.DelegatingRequestProcessor"/> </controller>

<!--4    web.xml文件配置struts-->

<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</param-value>

      </init-param>

       <load-on-startup>1</load-on-startup>

   </servlet>

 

    <servlet-mapping>

           <servlet-name>action</servlet-name>

           <url-pattern>*.do</url-pattern>

</servlet-mapping>

<!5  web容器中实例化spring容器-->

<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找   -->

<context-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>/WEB-INF/classes/beans.xml</param-value> 

或 <param-value>classpath:beans.xml</param-value> //如有多个spring配置文件用逗号隔开

</context-param>

 

加载方法一

 <!-- 通过Listener配置Spring容器随Web应用的启动而初始化 -->
<listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> 

 

加载方法二

 <!-- 通过servlet配置Spring容器随Web应用的启动而初始化 -->
<servlet>

      <servlet-name>contextLoader</servlet-name>

      <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

      <load-on-startup>2</load-on-startup>

</servlet>

 

使用spring解决struts1.3乱码问题。

<filter>

<filter-name>encoding</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-mapping>

<filter-name>encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

 

如果action没有交给spring管理时,我们通过下面语句获取spring容器实例

在struts的action中 可以使用:

WebApplicationContext webApplicationContext=

 WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());

 PersonService personService=(PersonService)webApplicationContext.getBean("personService");

 personService.savePerson(person);

*******************************************************

hibernate中使用c3p0连接池

<!-- C3P0连接池设定-->

<!-- 使用c3po连接池 -->

<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider

</property>

<!--在连接池中可用的数据库连接的最少数目 -->

<property name="c3p0.min_size">5</property>

<!--在连接池中所有数据库连接的最大数目  -->

<property name="c3p0.max_size">20</property>

<!--

设定数据库连接的过期时间,以秒为单位,

如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 

-->

<property name="c3p0.timeout">120</property>

 <!--3000秒检查所有连接池中的空闲连接 以秒为单位-->

<property name="c3p0.idle_test_period">3000</property>

<!-- 设置自动提交 -->

<property name="connection.autocommit">true</property>

 

 

利用spring来管理session OpenSessionInView

<filter>
 <filter-name>Spring openEntityManagerInViewFilter</filter-name>
 <!-- if you are using hibernate 用于hibernate+spring-->
 <!-- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter -->
 <filter-class>
 org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter //这是集成jpa时所用
 <filter-class>
</filter>
<filter-mapping>
 <filter-name>Spring openEntityManagerInViewFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

分享到:
评论

相关推荐

    spring_day04

    总结起来,`PlatformTransactionManager`是Spring事务管理的关键接口,它提供了一种抽象层,使得我们可以轻松地在不同事务管理策略间切换,同时简化了事务管理的复杂性。了解并正确使用`PlatformTransactionManager`...

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    04.硅谷学习_SpringCloud_微服务是什么 05.硅谷学习_SpringCloud_微服务是什么2 06.硅谷学习_SpringCloud_微服务与微服务架构 07.硅谷学习_SpringCloud_微服务优缺点 08.硅谷学习_SpringCloud_微服务技术栈有...

    spring mvc_04

    在本教程"spring mvc_04"中,我们将深入探讨如何使用MultiActionController来实现静态资源的访问。尽管在现代Spring MVC应用中,我们通常会推荐使用基于注解的@Controller或@RestController,但理解...

    spring-boot-web-restfulcrud代码示例

    总结起来,"spring-boot-web-restfulcrud" 示例项目展示了如何利用 Spring Boot 和 Spring MVC 实现一个基于 RESTful 的 CRUD 应用。这涵盖了从项目的初始化、Controller 的编写、服务层的设计到与数据库的交互等多...

    Spring4_day04总结

    比较好的总结了ssh的初步整合

    Spring从入门到精通04

    根据给定的标题“Spring从入门到精通04”以及描述“教会你一步一步学习Spring,非常适合新手学习”,我们可以深入探讨Spring框架的一些核心概念和技术要点,帮助初学者更好地理解和掌握Spring框架。 ### Spring框架...

    Spring demo 2017-04-18

    总结,Spring的自动装配、AOP、泛型依赖注入和JDBC的使用都是其强大功能的体现,理解并熟练运用这些知识点,能帮助我们更好地构建健壮、灵活的应用系统。通过"Spring demo 2017-04-18"项目的学习,我们可以将理论...

    spring-day04教案1

    总结来说,本教程主要涵盖了Spring框架中的JdbcTemplate的使用,以及声明式事务管理的两种方式,特别是基于XML和注解的配置。通过学习这些内容,开发者可以更有效地管理数据库操作和事务,提升应用程序的稳定性和...

    Spring的事务管理小案例

    案例中的"springStudy04_transaction"可能包含了一个使用Spring进行事务管理的简单应用程序,其中可能包括了数据库连接配置、数据访问对象(DAO)的实现以及事务控制的代码。你可以通过阅读源代码来了解如何在实际...

    Spring+SpringMVC+MyBatis+SpringBoot视频04

    【Spring+SpringMVC+MyBatis+SpringBoot视频04】这个课程主要涵盖了四个核心的Java开发框架:Spring、SpringMVC、MyBatis以及SpringBoot。这四大框架是现代Java Web应用开发中的基石,提供了高效、灵活的组件管理和...

    SpringBoot下的SpringAOP-day04-源代码

    SpringBoot下的Spring——DAY04——动态代理总结、AOP、自定义注解进行拦截、动态获取注解参数、通知方法 1.动态代理总结 1.1 JDK动态代理特点 1.2 CGlib动态代理 1.2.1 CGLib特点说明 1.3 动态代理的作用 2 Spring...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    总结: 通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。

    ssh框架整合详细步骤(spring+struts2+hibernate)

    **Step04:新建配置包**:创建一个名为`config.struts`的包,用于存放struts2的配置文件。 **Step05:创建struts.xml配置文件** - 在`config.struts`包内新建`struts.xml`,并按照DTD规范填写必要的配置信息,如...

    尚硅谷Java视频教程_SpringCloud视频教程

    04.尚硅谷_SpringCloud_微服务是什么 05.尚硅谷_SpringCloud_微服务是什么2 06.尚硅谷_SpringCloud_微服务与微服务架构 07.尚硅谷_SpringCloud_微服务优缺点 08.尚硅谷_SpringCloud_微服务技术栈有哪些 09....

    spring-security-demo-04-bootstrap-登录表单:Ejemplo Spring Security 04登录表单con bootstrap

    总结起来,"spring-security-demo-04-bootstrap-login-form"是一个结合了Spring Security强大安全特性和Bootstrap优雅设计的登录表单示例。通过学习和实践这个示例,开发者可以更好地理解和应用Spring Security框架...

    品优购_day04_Spring Security_V1.31

    总结来说,Spring Security 是一款强大且灵活的安全框架,能够帮助开发者快速实现复杂的安全控制逻辑,同时提供了丰富的扩展性和定制性,适应各种企业级应用场景。在品优购电商系统的开发中,通过学习和运用 Spring ...

    04 用思维导图拆解Spring Framework框架,让您事半功倍!慕课专栏1

    总结来说,使用思维导图拆解Spring Framework框架是一种有效的学习策略,它能帮助开发者节省时间,更好地理解和掌握Spring的核心组件和它们之间的交互。通过这种方式,我们可以深入学习Spring的内在机制,提高代码...

    spring实例“Developing_a_Spring_Framework_MVC_application_step-by-step”_剖析

    2004-10-04 23:18:38,839 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - [/WEB-INF/springapp-servlet.xml] of ServletContext&gt; ``` #### 三、Bean的创建与配置 接下来,`...

    springcloud入门代码基于Spring Cloud实现的Feign公共模块代码

    接下来,让我们看看`springcloud-chapter04-2-master`这个压缩包可能包含的内容。通常,这个项目可能包含了以下部分: 1. **pom.xml**:Maven的配置文件,用于定义项目的依赖,包括Spring Cloud和Feign的相关依赖。...

Global site tag (gtag.js) - Google Analytics