`
javaping2008
  • 浏览: 106445 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring整合方案

阅读更多
一、数据访问
1、Spring的数据访问设计思想 2、数据源配置:
方式一:Spring内置实现 DriverManagerDataSource

<bean id ="dataSource" class ="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
   </property>
   <property name="url">
   <value>jdbc:mysql://localhost:3306/hibdb</value>
   </property>
   <property name="username">
   <value>root</value>
   </property>
   <property name="password">
   <value>windows</value>
   </property>
   </bean>
方式二:DBCP提供的BasicDataSource
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/hibdb</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>windows</value>
</property>
</bean>
方式三:JNDI数据源 JNDI数据源:(mysql5,tomcat5.5)
  
   step1:
   在server.xml中:
   <Resource name="jdbc/mydatasource" auth="Container" description="DB Connection"
type="javax.sql.DataSource" username="root" password="windows"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tarena" maxActive="5" />
step2:
在context.xml中(conf\context.xml):
<ResourceLink   name="jdbc/mydatasource"   global="jdbc/mydatasource"   type="javax.sql.DataSourcer"/>
step3:
在beans-config.xml:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
      <value>java:comp/env/jdbc/mydatasource</value>
    </property>
  </bean>
 
3、JDBC支持:
step1:  配置数据源
step2: 配置JdbcTemplate
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>   
step3:配置DAO
<bean id="orderDao" class="lab5.OrderDAOImpl">
<property name="jt"><ref bean="jdbcTemplate"/></property>
</bean>
注意: 查询时,使用RowMapper
 
4、hibernate支持:
step1: 配置数据源
step2: 配置sessionfactory
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>lab6/Order.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
step3: 配置DAO
<bean id="orderDao" class="lab6.OrderDAOHibernateImpl">
<property name="sessionFactory">
<ref bean="mySessionFactory" />
</property>
</bean>
注意:以上配置是要求dao 继承HibernateDaoSupport

  
二、事务:
1、Spring事务机制
声明式事务、事务管理器
2、hibernate事务
step1: 配置数据源
step2:配置sessionfactory (同上)
step3:配置事务管理器
<bean id="myTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="mySessionFactory" />
</property>
</bean>
step4:创建事务服务代理
<bean id="saleService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="proxyInterfaces">
<value>lab7.SaleService</value>
</property>
<property name="transactionManager">
<ref bean="myTransactionManager" />
</property>
<property name="target">
<ref bean="saleServiceTarget" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
注:
事务属性描述格式:
传播行为,隔离级别,只读事务(readonly),回滚规则
在默认情况下,Spring的容器对于非受查异常(服务模块中抛出的非受查异常)
,会回滚事务。对于受查异常,会提交事务。
如果即使发生了某种受查异常,也要回滚事务,可以用  “- 异常类型“来声明。
同样,对于非受查异常,如果不要求回滚事务,可以用"+异常类型"来声明

3、简化事务配置
继承、自动代理

三、Spring与struts整合:
前提:
配置ContextLoaderPlugIn插件:负责装载spring应用上下文
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/config/sale.xml" />
</plug-in>
方式一:通过Spring的ActionSupport类
ActionSupport类:
知道ApplicationContext的获得方式。
步骤:
1、Action直接继承ActionSupport
2、使用ApplicationContext ctx = getWebApplicationContext();取得Spring上下文
3、取得相应Bean
注意:有可能需要替换commons-attributes-compiler.jar包。
优点:
简单
缺点:
耦合高
违反IOC
无法使用多方法的Action

方式二:通过Spring的DelegatingActionProxy类
步骤:
1、Action中,使用IOC获得服务
2、配置struts-config.xml
<action path="/somepath" type="org.springframework.web.struts.DelegatingActionProxy"/>
3、在Spring配置文件中
<bean name="/somepath" class="SomeAction">
<property name="service"><ref bean=""/>
</bean>
注意,要用bean name命名。
/somepath:Action的path
优点:
不使用Spring api编写 Action
利用了IOC装配。
可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,
避免struts中Action的线程安全问题。
缺点:
struts配置文件中,所有path都映射到同一个代理类

方式三:通过Spring的DelegatingRequestProcessor类
步骤:
1、Action中,使用IOC获得服务
2、配置struts-config.xml
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
3、在Spring配置文件中
<bean name="/somepath" class="SomeAction">
<property name="service"><ref bean=""/>
</bean>
小结:
Spring与Struts整合方式只有两种:
(1)由Spring容器来管理Action(方式二,方式三)
(2)Action处于容器之外(方式一)
注意:
中文问题:
设置过滤器,设置页面编码,数据库编码
分享到:
评论
2 楼 laowood 2008-04-26  
mark


---------------
Java爱好者聚集扣扣群32351004
1 楼 wazj0517 2008-04-24  
好帖,学习了!!

相关推荐

    第27讲--Struts与Spring集成方案1(Struts集成Spring)

    在"第27讲--Struts与Spring集成方案1(Struts集成Spring)"中,我们主要探讨如何将Struts2与Spring进行整合。集成的主要目的是利用Spring的强大功能来管理Struts2中的Action类,从而实现更灵活的依赖注入和更好的控制...

    第28讲--Struts与Spring集成方案2(Spring集成Struts)

    Spring社区提供了spring-struts库,这个库包含了一些专门用于整合Struts和Spring的类和标签库。通过使用这个库,可以方便地在Struts的Action配置中声明Spring的bean,使Spring负责Action实例的创建和管理。这种方式...

    spring cloud + shiro集成方案

    手把手教你集成spring cloud + shiro微服务框架;用最少的工作量,改造基于shiro安全框架的微服务项目,实现spring cloud + shiro 框架集成。博客地址:...

    Spring Boot整合Spring Batch,实现批处理

    总的来说,Spring Boot与Spring Batch的结合为开发批处理应用提供了一种强大而灵活的解决方案。通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理...

    Spring Integration + Spring WS 整合

    在这个项目中,我们成功地将 Spring Integration 和 Spring WS 整合在一起,实现了一个完整的 Web 服务解决方案。这个项目对新手入门非常友好,因为它提供了一个简单的示例代码,使得开发者可以快速上手。

    spring+xfire集成解决方案

    ### Spring与XFire集成解决方案详解 #### 一、Spring与XFire概述 Spring框架作为Java平台上最流行的轻量级框架之一,提供了强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...

    Spring cloud与Spring boot 集成完整案例

    - **ace-security**: 可能是关于Spring Security的集成,Spring Security提供了全面的安全解决方案,包括认证、授权等,确保微服务的安全性。 - **eumji025**: 这可能是一个特定的模块或子项目,具体功能无法直接...

    spring整合

    总之,Spring整合涵盖了许多方面,从数据访问到Web开发,再到微服务和安全,Spring提供了一整套解决方案,使得开发者能够构建复杂的企业级应用。掌握Spring整合的技巧,对于提升开发效率和构建高质量软件至关重要。

    Spring+Struts+Hibernate比较详细的整合配置方案

    1. **Spring整合** - 在MyEclipse中添加Spring支持,选择相应的Spring版本和开发包,如Spring 1.2系列。 - 创建Spring配置文件(如`applicationContext.xml`),配置Bean定义,包括Service层、DAO层以及Action类等...

    mybatis与spring整合全部jar包

    这个“mybatis与spring整合全部jar包”包含了这三个框架整合所需的所有依赖库,使得开发者可以快速搭建SSM项目。 首先,让我们深入了解一下这三个组件: 1. **Spring**:Spring 是一个全面的Java企业级应用开发...

    Spring集成Struts的三种方案

    **集成方案一:继承知晓Spring上下文的Action基类** 在Spring-Struts的集成中,一种常见方法是通过继承Spring提供的`ActionSupport`基类。`ActionSupport`是`Action`的抽象实现,它包含了对Spring应用上下文的访问...

    发布webService服务接口与spring整合教程

    接下来,我们将探讨如何将Web Service服务接口与Spring整合: 1. **配置Spring上下文**:在Spring配置文件中,你需要声明一个WebServiceTemplate或Endpoint,这是Spring与Web Service交互的核心组件。例如,对于...

    struts+spring集成

    Struts和Spring是两个在Java Web开发中广泛使用的框架,它们各自解决了一部分问题,但结合起来可以提供更全面的解决方案。Struts是一个基于MVC(Model-View-Controller)架构的开源框架,主要负责处理HTTP请求和控制...

    ActiveMQ+spring配置方案详解

    本文将深入讲解ActiveMQ与Spring的整合配置方案。 首先,我们需要在项目中引入ActiveMQ的相关依赖。这通常通过在`pom.xml`文件中添加Maven依赖来完成。对于ActiveMQ,我们需要添加如下依赖: ```xml &lt;groupId&gt;...

    spring和struts整合的三种方案

    在实际应用中,第一种和第二种方案通常用于初始化 Spring 容器,而第三种方案则更深入地将 Spring 的功能集成到 Struts 请求处理流程中。然而,使用 `ActionSupport` 类(方法一)会使得 Struts Action 与 Spring ...

    struts hibernate spring整合图解及源码

    综上所述,"struts hibernate spring整合图解及源码"这个主题涵盖了如何将这三大框架结合使用,以构建高效、模块化的JavaWeb应用。通过学习和实践这个整合过程,初学者可以深入理解JavaEE开发的高级技术,并提升自己...

    struts1和spring整合

    8. 测试与调试:整合完成后,进行单元测试和集成测试,确保各个组件能正常协作。 以上就是 Struts1 和 Spring 整合的基本过程和关键知识点。这种整合方式使得开发者能够利用 Struts1 的 MVC 功能和 Spring 的强大...

    cxf整合spring

    将CXF与Spring整合的主要好处在于,可以利用Spring的强大管理和配置能力来管理CXF服务。Spring的DI可以帮助我们将CXF的服务bean与其他业务逻辑bean解耦,从而提高代码的可测试性和可维护性。此外,Spring还提供了对...

    SpringCache与redis集成,优雅的缓存解决方案.docx

    SpringCache与Redis集成,优雅的缓存解决方案 SpringCache是一种基于Java的缓存解决方案,它可以与Redis集成,提供了一种优雅的缓存解决方案。在本文中,我们将对SpringCache与Redis集成的优雅缓存解决方案进行详细...

    MyBatis+Spring整合示例

    由于Spring官方并未直接提供与MyBatis的集成解决方案,我们需要借助第三方库“mybatis-spring-1.0.0.jar”,这是由MyBatis官方提供的用于Spring框架的适配器。 首先,让我们了解MyBatis和Spring的基本概念。MyBatis...

Global site tag (gtag.js) - Google Analytics