`
wangmengbk
  • 浏览: 291886 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2+Spring2.5+Hibernate3+annotation 整合程序

    博客分类:
  • J2EE
阅读更多
由于目前公司都采用struts2 spring2.5或spring3 以及hibernate3 + annotation进行整合开发应用程序,其目的就是也就相对应的减少了一些程序员的开发量,由于该整合减少了对于使用struts1和spring整合的一些xml配置文件。
不过一以下是我自己进行整和的一个简单的实例,共大家入门学习用:

一 开发环境说明说明:
1. IDE: Myeclipse8.0
2. 数据库:MySql
3. JDK:要求最低版本1.5以及以上
4. 服务器:tomcat6.0

二.以下是一些需要进行的一些配置,对于工程需要的 .jar 可以在下面的附件工程下载到:

1.web.xml 中的配置内容为:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <!-- spring config file -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>


<!-- Struts2 filter,actionPackages定义扫描Action类的目录 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
     <param-name>actionPackages</param-name>
    <param-value>com.logo.group.webapp.action,com.logo.group.harvest.action</param-value>
</init-param>

</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!--Spring ApplicationContext 载入 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Spring 刷新Introspector防止内存泄露 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2.application.xml 配置:
<?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:context="http://www.springframework.org/schema/context"
       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-2.5.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!--  加载数据连接字符 配置文件 jdbc.properties -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:/config/jdbc.properties</value>
</list>
</property>
</bean>

<!-- 使用annotation -->
<context:annotation-config>
</context:annotation-config>

<!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入 -->
<context:component-scan base-package="com.wm" />

<!-- 数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<!-- 数据库驱动 -->
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<!-- 数据库连接字符串 -->
<property name="url">
<value>${jdbc.url}</value>
</property>
<!-- 登录数据库 用户名 -->
<property name="username">
<value>${jdbc.username}</value>
</property>
<!-- 连接数据库密码 -->
<property name="password">
<value>${jdbc.password}</value>
</property>
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="1"/>
<!-- 连接池的最大值 -->
<property name="maxActive" value="500"/>
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="2"/>
<!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="1"/>
</bean>

<!-- Hibernate配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<!--hibernate的方言,建议改成MySQL5Dialect-->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQL5Dialect
</prop>
<!--开发的时候尽量打开true -->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.wm.vo.Student</value>
<!--   将实体类加载
<value>org.springside.examples.miniweb.entity.user.User</value>
<value>org.springside.examples.miniweb.entity.user.Role</value>
<value>org.springside.examples.miniweb.entity.user.Authority
</value>
-->
</list>
</property>
</bean>

<!-- 事务配置 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="commonAnnotationBeanPostProcessor"
class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />

<bean id="autowiredAnnotationBeanPostProcessor"
class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />

<!-- 使用annotation定义事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />

</beans>


3.struts.xml 配置:

<?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>
    <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
    <constant name="struts.serve.static.browserCache" value="false"/>
    <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
    <constant name="struts.configuration.xml.reload" value="true"/>
    <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
    <constant name="struts.devMode" value="true" />
     <!-- 默认的视图主题 -->
    <constant name="struts.ui.theme" value="simple" />
   
    <!-- struts 中的action 由spring 来创建 -->
   <!--  <constant name="struts.objectFactory" value="spring" /> -->
   
   <!-- package 可以配置多个 name 是唯一的 -->
   <package name="s2s2h3" extends="struts-default" >
   <!-- 定义名为 login 的 Action ,其实现类为 LoginAction -->
   <action name="login" class="com.wm.action.LoginAction" method="login" >
       <!-- 处理结果返回 success ,则对应/result.jsp 视图资源 -->
   <result name="success">/result.jsp</result>
   <result name="input">/index.jsp</result> 
   </action>
   </package>
   </struts>


4.注意 在配置数据源的时候 引用了属性文件 该属性文件放在src/config/jdbc.properties; 该文件时为了方便换用不同的数据库。
文件内容为:

#mysql database configuration
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssi?characterEncoding=gb2312
jdbc.username=root
jdbc.password=root

#oracle database configuration
#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc\:oracle\:thin\:@172.168.10.220\:1521\:ora9test
#jdbc.username=system
#jdbc.password=manager


#sqlserver database configuration
#jdbc.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
#jdbc.url=jdbc:microsoft:sqlserver://localhost:1433;databasename=itop
#jdbc.username=sa
#jdbc.password=


注意 :文件中为该整合的应用程序,下载后导入该工程就可以直接运行:数据库也在该程序中(WebRoot/database/ssi.rar);将该包 解压到 安装的 MySql 目录下的 Data 文件下即可。由于上传不能大于10M,所以lib 下的 jar就分开上传了。如果有看到下载请注意!
0
0
分享到:
评论
2 楼 wangmengbk 2010-12-12  
可以下载啊!没有问题,如果用网页 的形式不行,可以用迅雷下载!
1 楼 gaobw984 2010-12-12  
lib4下载不了??

相关推荐

Global site tag (gtag.js) - Google Analytics