`

Spring 调用jndi 数据源 struts + hibernate + spring 整合

阅读更多
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
    
    <package name="usb" namespace="/add" extends="struts-default">
       <action name="StuHell_*" class="stuHello" method="{1}">
       		<result name="success">/u.jsp</result>
       </action>
    </package>

    <!--package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package-->

    <!-- Add packages here -->

</struts>

 @author liuqing

@version 1.1

@datetime 2010-10-2

jndi 原理这里就不做介绍了

这里是调用tomcat jndi

首先配置 tomcat jndi

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--><!-- The contents of this file will be loaded for each web application -->
<Context>
 <Resource name="jdbc/Hellooracle" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@192.168.0.xxx:1521:ORCL"
              username="xxx" password="xxx" maxActive="100" maxIdle="10"
              maxWait="-1"/> 
              
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
	
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>

 

配置web.xml 文件 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>hibernate3.6test</display-name>
  
  <resource-ref>
	 <description>Oracle Datasource example</description>
	 <res-ref-name>jdbc/Hellooracle</res-ref-name>
	 <res-type>javax.sql.DataSource</res-type>
	 <res-auth>Container</res-auth>
 </resource-ref>
<!--
	  - Location of the XML file that defines the root application context
	  - Applied by ContextLoaderListener.
	  -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/applicationContext-*.xml
		</param-value>
	</context-param>
		<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <listener>
       <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

   配置application-app.xml 文件

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans> 

     <bean id="dataSource"
        class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
           <value>java:comp/env/jdbc/Hellooracle</value>
       </property>
    </bean>
    <!--bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">   
        <property name="driverClass" value="oracle.jdbc.OracleDriver" />   
        <property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.0.108:1521:ORCL" />   
        <property name="user" value="bbsqyl" />   
        <property name="password" value="bbsqyl" />   
    </bean-->   
  
    <bean id="sessionFactory"  
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
        <property name="dataSource">   
            <ref local="dataSource" />   
        </property>   
        <property name="configLocation">   
            <value>   
                classpath:hibernate.cfg.xml   
            </value>   
        </property>   
        <property name="hibernateProperties">   
            <props>   
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>   
                <prop key="hibernate.show_sql">true</prop>   
            </props>   
        </property>   
    </bean>   
  
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" >   
        <property name="sessionFactory" ref="sessionFactory" />   
    </bean>   
    <!-- 配置事务拦截器 -->   
    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">   
     <!-- 事务拦截器bean需要依赖注入一个事务管理器 -->   
        <property name="transactionManager" ref="transactionManager" />   
        <property name="transactionAttributes">   
          <!-- 下面定义事务传播属性-->   
            <props>   
                <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>   
                <prop key="*">PROPAGATION_REQUIRED</prop>   
            </props>   
        </property>   
    </bean>   
  
    <!-- 定义BeanNameAutoProxyCreator-->   
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">   
     <!-- 指定对满足哪些bean name的bean自动生成业务代理 -->   
        <property name="beanNames">   
            <!-- 下面是所有需要自动创建事务代理的bean-->   
            <list>   
                <value>*Service</value>   
            </list>   
            <!-- 此处可增加其他需要自动创建事务代理的bean-->   
        </property>   
        <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->   
        <property name="interceptorNames">   
            <list>   
                <!-- 此处可增加其他新的Interceptor ,下面的拦截器仅用于生成 事务代理-->   
                <value>transactionInterceptor</value>   
            </list>   
        </property>   
    </bean>   
</beans>

 

  添加action 文件

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:aop="http://www.springframework.org/schema/aop"
	   xmlns:tx="http://www.springframework.org/schema/tx"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

     <bean id="test" class="com.test.dao.TestSpringConnection">
       <property name="sessionFactory" ref="sessionFactory" />
     </bean>

     <bean id="stuHello" class="com.test.action.StuHello" scope="session" >
     	<property name="usb" value="struts2 successful" />
     	<property name="test" ref="test"></property>
     </bean>
     
</beans>

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Struts+Spring+Hibernate整合教程

    SSH(Struts+Spring+Hibernate)整合是Java EE领域一种非常流行的架构模式,它通过整合这三个成熟的框架来构建Web应用,可以大大简化开发过程,并提高项目的可维护性。下面我们详细解释各个组件的职责以及整合时的...

    基于struts+hibernate+spring中国移动管理项目

    此外,Spring还提供了事务管理、数据源配置以及对企业服务的支持。 **4. SSH整合** SSH整合的关键在于如何让这三个框架协同工作。通常,Spring会作为整体的容器,管理其他两个框架的实例。Struts的Action通过Spring...

    struts+spring+hibernate笔试题

    - **实现:** 使用 `JndiObjectFactoryBean` 可以获取 JNDI 资源,如数据源。 **Spring Web 支持:** - **配置监听器:** 通过在 web.xml 文件中配置监听器类(如 ContextLoaderListener),可以在启动时加载 ...

    Struts2.1.6+Spring2.5+Hibernate3.3的框架配置详解

    1. **配置数据源**:在`applicationContext.xml`中定义数据源,通常使用JNDI数据源或Spring内置的数据源。 2. **配置SessionFactory Bean**:基于`hibernate.cfg.xml`创建SessionFactory Bean。 3. **配置DAO层**:...

    原创struts2+spring2+hibernate3的simple示例

    例如,如何配置Tomcat的数据源,可能涉及到`context.xml`文件的修改,添加JNDI数据源以连接到数据库。 6. **TestWeb**: 这可能是一个Web应用的目录结构,包含了WEB-INF下的web.xml文件,该文件定义了Servlet和...

    spring4+Hibernate4+Struts2.3开发网站应用

    - **c3p0**:这是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供了一些高级特性,如连接测试、自动关闭、空闲检测等,有助于提高数据库资源的利用率和系统的稳定性。 - **log4j**:这是一个广泛使用的日志...

    Spring +struts+c3p0 框架demo

    【Spring + Struts + C3P0 框架整合详解】 在软件开发领域,Spring、Struts 和 C3P0 是三个非常重要的开源框架,它们分别负责不同的职责,共同构建了一个高效、稳定的Web应用程序。Spring 作为核心的依赖注入(DI)...

    spring4+hib4+struts2.3.15 全包整合

    - **C3P0数据源**:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,提供数据库连接的自动管理,提高数据库操作的效率。 这些组件在“spring4+hib4+struts2.3.15 全包整合”中都是为了创建一个功能完备、...

    Spring与Hibernate整合,Spring与Struts2整合源代码

    2. 配置Spring的DataSource,定义数据源,可以使用Apache Commons DBCP或者JNDI数据源。 3. 创建SessionFactoryBean配置,用于初始化Hibernate的SessionFactory。 4. 配置Hibernate的实体类,使用@Entity注解,以及@...

    struts2hibernate4spring4项目搭建需要的jar包

    为了整合这些框架,我们需要在项目的类路径下添加相应的jar包,包括Struts2、Spring、Hibernate、MySQL驱动以及C3P0的库文件。接着,配置struts2的struts.xml、spring的applicationContext.xml以及hibernate的...

    struts2 + ejb3 + spring 整合了

    可能出现的问题包括:配置错误、依赖冲突、数据源配置不正确或EJB3、Spring和Struts2之间的版本不兼容。遇到这些问题时,检查日志输出,查找错误信息,并根据提示进行修正。 总的来说,整合Struts2、EJB3和Spring...

    Spring应用开发完全手册 源码

    本书以使用Spring框架技术开发网络应用程序的实用技术为中心,全面、系统地...运用Spring+Hibernate开发校园管理系统,运用Spring+Struts+Hibernate开发企业门户网站,运用Spring+Java Swing开发企业进销存管理系统等。

    整合Struts_Hibernate_Spring应用开发详解

    ### 整合Struts_Hibernate_Spring应用开发详解 #### J2EE应用与环境 - **J2EE应用概述** - **J2EE应用的分层模型:** Java EE(J2EE)架构通常采用多层设计模式,主要包括表现层、业务逻辑层和服务层。这种分层有...

    struts2+spring+ejb3源代码(完整版)

    Struts2、Spring和EJB3是Java Web开发中的三个重要框架,它们分别在MVC模式、依赖注入和企业级服务方面发挥着关键作用。这个压缩包提供的源代码是一个完整的项目示例,展示了如何将这三个框架集成到一个应用程序中。...

    springssh 我上培训班时spring框架搭建课件

    Spring框架支持多种数据源实现,如基于JNDI的数据源或本地数据源。 2. **SessionFactory创建**:接着,利用配置好的数据源来创建SessionFactory,它是Hibernate的核心工厂对象,负责管理Session的生命周期,并提供...

    ssh step by step 01 struts2项目

    4. **配置数据访问**:在Spring的配置文件中,定义数据源、SessionFactory以及DAO接口的实现类。通过Spring的`&lt;jee:jndi-lookup&gt;`或`&lt;bean&gt;`标签进行配置。 5. **测试与运行**:编写测试用例验证SSH整合是否成功,...

    SSh的注册实例

    这些文件会详细阐述如何配置SSH框架,如何定义JNDI数据源,以及如何在Action中调用Service,由Service再调用DAO进行数据库操作。 学习SSH框架的集成,需要掌握以下几个关键点: 1. Struts2的配置:理解Action配置,...

    Spring in Action(第二版 中文高清版).part2

    5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成...

    【个人经验】SSH集成步骤 SSI集成步骤

    首先,SSH集成涉及Struts、Spring和Hibernate的整合。Struts作为MVC框架负责前端展示逻辑,Spring则提供依赖注入(DI)和面向切面编程(AOP),还负责管理其他组件,如数据访问层的Hibernate。Hibernate则是一个强大...

    Spring in Action(第二版 中文高清版).part1

    5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成...

Global site tag (gtag.js) - Google Analytics