当前访客身份:游客 [ 登录  | 注册加入尚学堂]
启用新域名sxt.cn
新闻资讯

struts2.3+spring3.3+hibernate3.6OA项目实战(一)

goldbin 发表于 2年前  | 评论(2 )| 阅读次数(1771 )|   2 人收藏此文章,   我要收藏
摘要 struts2.3+spring3.3+hibernate3.6OA项目实战

系统需求

 

序号

功能名称

功能需求标识

优先级

简要描述

个人办公

我的办公桌

打开个人办公桌,在个人办公桌上,是到达各种管理功能的快捷链接

我的便签

随手记录的信息

我的任务

任务管理

通信录

个人通信录

公文管理

公文维护

各种类型的公文管理、审批公文等

归档处理

对已完成流转的公文进行归档

公共信息

信息管理

进行新闻、通知、期刊、知识和规章制度的发布和管理,使企业的信息和知识快速传播和转移。

行政办公

会议管理

管理会议室的占用情况

资产管理

管理企业的资产信息

用品管理

管理企业用品的申请

车辆管理

企业车辆的管理

图书管理

图书的借出管理

消息管理

收件箱

接收的所有消息

发件箱

发送的所有消息

垃圾箱

已删除的消息

聊天记录

跟某个用户的聊天记录

工作流程

流程管理

如何定义企业的流程(可以灵活定义各种流程)

表单定义

如何针对不同的流程定义表单

组织管理

机构管理

公司组织架构管理

人员管理

公司人员管理

权限管理

模块管理

系统所有模块的管理

角色管理

系统的角色定义、给角色分配权限等

用户管理

系统帐号的分配、给用户分配角色、给用户分配权限等

系统管理

密码修改

代码定义

系统初始化

人事档案

人员履历

转正申请

离职申请

员工考勤

技术框架

    表现层:Struts2.3  ,OGNL,javascript,Jquery ,dwr和一个漂亮后台页面模块UUR。
    业务层:Spring3.2,AOP事物管理,log4j日志处理,ehcache 数据的缓存。
    持久层:Hibernate3.6。C3p0数据库连接池。

开发环境

工具:eclipse,mysql,Rose,tomcat等。

开发顺序:

  1. 使用Rose依次画出:用例图,领域模型图,类图,时序图,页面跳转活动图。
  2.  根据时序图得到接口中的方法。
  3. 编写业务接口,并实现所有的业务方法。
  4. 单元测试业务方法。
  5. 编写Action中所有的方法。
  6. 根据页面跳转活动图写jsp,并完成功能模块。

建立oa工程

导入所有的jar

 建立Struts配置文件


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

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
</struts>
建立spring配置文件
<?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:util="http://www.springframework.org/schema/util"
             xmlns:cache="http://www.springframework.org/schema/cache"
             xmlns:tx="http://www.springframework.org/schema/tx"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
                     http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                     http://www.springframework.org/schema/context
                     http://www.springframework.org/schema/context/spring-context-3.2.xsd
                     http://www.springframework.org/schema/aop
                     http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
                     http://www.springframework.org/schema/util
                     http://www.springframework.org/schema/util/spring-util-3.2.xsd
                     http://www.springframework.org/schema/cache
                     http://www.springframework.org/schema/cache/spring-cache-3.2.xsd
                     http://www.springframework.org/schema/tx
                     http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
	<context:component-scan base-package="com.bjsxt"></context:component-scan>
	<!-- 数据库连接池 -->
	<bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql://localhost/oa"></property>
		<property name="user" value="root"></property>
		<property name="password" value="123456"></property>
		<property name="initialPoolSize" value="3"></property>
		<property name="maxPoolSize" value="20"></property>
	</bean>
	
	<!-- 初始化SessionFactory ,替代Hibernate.cfg.xml -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="ds"></property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
		<property name="packagesToScan">
			<list>
				<value>com.bjsxt.oa.po</value>
			</list>
		</property>
	</bean>
	
	<!-- 开启 aspectj 的AOP -->
	<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
	
	<!-- Hibernate事务管理  (事务拦截的切面)-->
	<bean id="htm" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<aop:config>
		<aop:pointcut expression="execution(* com.bjsxt.oa.manager.*.*(..))" id="myPoint"/>
		<aop:advisor advice-ref="myAdvice" pointcut-ref="myPoint"/>
	</aop:config>
	
	<tx:advice transaction-manager="htm" id="myAdvice">
		<tx:attributes>
			<tx:method name="*"/>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="find*" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	
	

</beans>


导入UUR页面模版并运行

 

分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
声明:博客文章版权属于原创作者,受法律保护。如果侵犯了您的权利,请联系管理员,我们将及时删除!
(邮箱:webmaster#sxt.cn(#换为@))
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183