`
kenny13
  • 浏览: 44788 次
  • 性别: 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处于容器之外(方式一)
注意:
中文问题:
设置过滤器,设置页面编码,数据库编码
分享到:
评论

相关推荐

    Mybatis与Spring整合所需的jar包

    mybatis与spring整合时所依赖的jar包,包括: 1.Mybatis所需的jar包括: ant-1.9.6.jar ant-launcher-1.9.6.jar asm-5.2.jar cglib-3.2.5.jar commons-logging-1.2.jar javassist-3.22.0-CR2.jar log4j-...

    mybatis与spring整合的全部jar包

    以上就是关于“mybatis与spring整合的全部jar包”的详细知识点,这些组件共同构建了一个灵活且易于维护的Java Web应用程序。通过理解这些概念和技术,开发者可以更好地理解和使用SSM框架来开发复杂的企业级应用。

    mybatis-spring 整合jar包

    mybatis-spring 整合jar包,Spring和MyBatis环境整合mybatis-spring-1.1.1

    mybatis与spring整合全部jar包

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

    java-spring整合

    Java-Spring 整合 Java-Spring 整合是指将 Java 语言与 Spring 框架进行整合,以便更好地开发企业级应用程序。下面我们将对 Java-Spring 整合的相关知识点进行详细讲解。 一、 Spring 框架简介 Spring 框架是一款...

    spring整合

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

    spring_mybatis 整合jar包

    在与Spring整合后,可以通过Spring的ApplicationContext来管理SqlSessionFactory和Mapper接口,实现事务的统一管理和DAO的自动注入。 在压缩包子文件的文件名称列表中,虽然只列出了"lib",但我们可以推测,这个...

    Spring 整合 Flex 包

    Spring 整合 Flex 是一种将 Adobe Flex 前端技术和 Spring 框架后端服务进行集成的方法,目的是为了创建富互联网应用程序(Rich Internet Applications,RIA)。Spring Flex 提供了全面的支持,使得 Flex 应用程序...

    spring整合elasticsearch-2.3.5

    本示例程序主要是spring 整合elasticsearch-2.3.5的实践,测试时先将配置文件es.properties中ES服务端es.ip,es.port, es.cluster 配置替换成自己的服务器信息

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

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

    struts1和spring整合

    Struts1 和 Spring 整合是 Java Web 开发中常见的一种技术组合,它们分别作为 MVC 框架和依赖注入框架,共同提升了应用的可维护性和可扩展性。Struts1 提供了强大的控制器层,而 Spring 提供了业务逻辑处理和依赖...

    Spring Integration + Spring WS 整合

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

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

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

    spring整合jpa mysql

    Spring整合JPA与MySQL是现代Java企业级应用中常见的数据持久化方案,它结合了Spring框架的灵活性和Java Persistence API(JPA)的强大功能,同时利用MySQL作为关系型数据库,提供高效、便捷的数据存储和查询能力。...

    struts2和spring整合包

    **Struts2和Spring整合** 整合Struts2和Spring的主要目标是利用两者的优点,创建一个更强大的MVC应用。整合步骤通常包括: 1. **配置Spring**:创建Spring的ApplicationContext配置文件,定义Bean及其依赖。 2. **...

    mybatis-spring整合简单的实例代码

    【标题】"mybatis-spring整合简单实例代码"所涉及的知识点主要集中在如何将MyBatis与Spring框架进行集成,以便在Spring应用中利用MyBatis进行数据访问。这一过程通常包括以下几个关键步骤: 1. **环境配置**:首先...

    Spring整合其他ORM框架

    3. **Spring 整合 JPA**:Java Persistence API(JPA)是 Java 标准的 ORM 规范,Spring 提供了 LocalContainerEntityManagerFactoryBean 支持 JPA 集成。开发者可以选择不同的 JPA 实现,如 Hibernate JPA、Eclipse...

    Mybatis与Spring整合全部jar包

    将Mybatis与Spring整合,可以充分利用两者的优点,实现更高效、更模块化的开发。 整合Mybatis和Spring,首先需要理解它们的核心概念。Mybatis中的核心组件是SqlSessionFactory和SqlSession,它们分别负责创建...

    MyBatis+Spring整合示例

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

    spring整合其他框架

    本篇文章将详细讲解Spring如何与其他知名框架进行整合,以实现更高效的应用开发。 1. Spring与ActiveMQ整合:ActiveMQ是Apache出品的一款开源消息中间件,用于处理异步通信和消息传递。Spring通过JMS(Java消息服务...

Global site tag (gtag.js) - Google Analytics