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.jar、commons-dbcp.jar、commons-pool.jar
lib\aspectj\aspectjweaver.jar、aspectjrt.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.jar和standard-1.0.2.jar更换为1.1版本。Spring中已经存在一个antlr-2.7.6.jar,所以把struts中的antlr-2.7.2.jar删除,避免jar冲突。
数据库驱动jar
**************************************************
Spring和hibernate
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>
<!-- 把对struts中action的请求委托给spring容器管理,在spring的context配置文件中查找 -->
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
<message-resources parameter="MessageResources" />
</struts-config>
<!—2 在spring的beans.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的请求控制器,该请求控制器会先根据action的path属性值到 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>
相关推荐
总结起来,`PlatformTransactionManager`是Spring事务管理的关键接口,它提供了一种抽象层,使得我们可以轻松地在不同事务管理策略间切换,同时简化了事务管理的复杂性。了解并正确使用`PlatformTransactionManager`...
04.硅谷学习_SpringCloud_微服务是什么 05.硅谷学习_SpringCloud_微服务是什么2 06.硅谷学习_SpringCloud_微服务与微服务架构 07.硅谷学习_SpringCloud_微服务优缺点 08.硅谷学习_SpringCloud_微服务技术栈有...
在本教程"spring mvc_04"中,我们将深入探讨如何使用MultiActionController来实现静态资源的访问。尽管在现代Spring MVC应用中,我们通常会推荐使用基于注解的@Controller或@RestController,但理解...
总结起来,"spring-boot-web-restfulcrud" 示例项目展示了如何利用 Spring Boot 和 Spring MVC 实现一个基于 RESTful 的 CRUD 应用。这涵盖了从项目的初始化、Controller 的编写、服务层的设计到与数据库的交互等多...
比较好的总结了ssh的初步整合
根据给定的标题“Spring从入门到精通04”以及描述“教会你一步一步学习Spring,非常适合新手学习”,我们可以深入探讨Spring框架的一些核心概念和技术要点,帮助初学者更好地理解和掌握Spring框架。 ### Spring框架...
总结,Spring的自动装配、AOP、泛型依赖注入和JDBC的使用都是其强大功能的体现,理解并熟练运用这些知识点,能帮助我们更好地构建健壮、灵活的应用系统。通过"Spring demo 2017-04-18"项目的学习,我们可以将理论...
总结来说,本教程主要涵盖了Spring框架中的JdbcTemplate的使用,以及声明式事务管理的两种方式,特别是基于XML和注解的配置。通过学习这些内容,开发者可以更有效地管理数据库操作和事务,提升应用程序的稳定性和...
案例中的"springStudy04_transaction"可能包含了一个使用Spring进行事务管理的简单应用程序,其中可能包括了数据库连接配置、数据访问对象(DAO)的实现以及事务控制的代码。你可以通过阅读源代码来了解如何在实际...
【Spring+SpringMVC+MyBatis+SpringBoot视频04】这个课程主要涵盖了四个核心的Java开发框架:Spring、SpringMVC、MyBatis以及SpringBoot。这四大框架是现代Java Web应用开发中的基石,提供了高效、灵活的组件管理和...
SpringBoot下的Spring——DAY04——动态代理总结、AOP、自定义注解进行拦截、动态获取注解参数、通知方法 1.动态代理总结 1.1 JDK动态代理特点 1.2 CGlib动态代理 1.2.1 CGLib特点说明 1.3 动态代理的作用 2 Spring...
总结: 通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。
**Step04:新建配置包**:创建一个名为`config.struts`的包,用于存放struts2的配置文件。 **Step05:创建struts.xml配置文件** - 在`config.struts`包内新建`struts.xml`,并按照DTD规范填写必要的配置信息,如...
04.尚硅谷_SpringCloud_微服务是什么 05.尚硅谷_SpringCloud_微服务是什么2 06.尚硅谷_SpringCloud_微服务与微服务架构 07.尚硅谷_SpringCloud_微服务优缺点 08.尚硅谷_SpringCloud_微服务技术栈有哪些 09....
总结起来,"spring-security-demo-04-bootstrap-login-form"是一个结合了Spring Security强大安全特性和Bootstrap优雅设计的登录表单示例。通过学习和实践这个示例,开发者可以更好地理解和应用Spring Security框架...
总结来说,Spring Security 是一款强大且灵活的安全框架,能够帮助开发者快速实现复杂的安全控制逻辑,同时提供了丰富的扩展性和定制性,适应各种企业级应用场景。在品优购电商系统的开发中,通过学习和运用 Spring ...
总结来说,使用思维导图拆解Spring Framework框架是一种有效的学习策略,它能帮助开发者节省时间,更好地理解和掌握Spring的核心组件和它们之间的交互。通过这种方式,我们可以深入学习Spring的内在机制,提高代码...
2004-10-04 23:18:38,839 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - [/WEB-INF/springapp-servlet.xml] of ServletContext> ``` #### 三、Bean的创建与配置 接下来,`...
接下来,让我们看看`springcloud-chapter04-2-master`这个压缩包可能包含的内容。通常,这个项目可能包含了以下部分: 1. **pom.xml**:Maven的配置文件,用于定义项目的依赖,包括Spring Cloud和Feign的相关依赖。...