轻量级javaee最后工作流项目总结
来源:互联网 发布:java导出excel合并行 编辑:程序博客网 时间:2024/06/03 22:34
工作流系统涉及到的内容:
一.ssh框架整合
1.整合流程:
先整合可以测试的spring和Hibernate,测试没有问题之后再整合struts;
整合ssh细节及问题:
1)spring配置文件放置的位置问题:默认为:/WEB-INF/applicationContext.xml
;若放在其他地方配置好路径。若有多个配置文件需要启动是扫描,也需要进行配置<param-value>/WEB-INF/applicationContext.xml,
/WEB-INF/daoContext.xml</param-value>
2)若要测试spring需要进行加载applicationContext.xml获取javaBean
eg:通过ClassPathXml~读取applicationContext.xml
然后获取ctx.getBean()来获取javaBean
3)Hibernate配置文件放在spring(applicationContext-db.xml基本不修改的配置文件)配置文件中减少配置文件的数量;
配置的只要几点:
a.配置数据源dataSource连接数据库,用数据库连接池-c3p0(可用jdbc.properties/p:~配置)
b.配置sessionFactory引用数据源dataSource,注:使用spring中的sessionFactory
类:org.springframework.orm.hibernate4.LocalSessionFactoryBean;同时配置
扫描持久化类:(参考:http://blog.csdn.net/v123411739/article/details/21295525)
扫描配置文件(hbm.xml): mappingResources(列出全部配置文件的全部路径)、mappingDirectoryLocations(扫描路径)
扫描注解(annotation):annotatedClasses(列出全部全限定类名)、packagesToScan(扫描包路径)
c.指定数据库方言、是否自动建表、是否生成SQL语句等
d.配置Hibernate的局部事务管理器,使用HibernateTransactionManager类
并注入SessionFactory的引用
e.配置事务增强处理Bean,指定事务管理器
f.配置切入点
4)dao组件和业务逻辑组件:配置模板然后引用模板
a.dao组件为*Dao组件注入sessionFactory,dao继承了BaseDao即为为Hibernate注入sessionFactory
b.业务逻辑组件为*ServiceImpl注入*Dao
4.struts配置文件
1)常用常量constant
2)拦截器Interceptor~系统的和自定义的(看书)
a.struts2自带拦截器
<interceptors>
<!-- 配置普通员工角色的权限检查拦截器 -->
<interceptor name="empAuth"class=
"com.lxt.ssh.action.authority.EmpAuthorityInterceptor"/>
<!-- 配置经理角色的权限检查拦截器 -->
<interceptor name="mgrAuth"class=
"com.lxt.ssh.action.authority.MgrAuthorityInterceptor"/>
<!-- 配置普通员工的默认的拦截器栈 -->
<interceptor-stack name="empStack">
<interceptor-ref name="defaultStack"/>
<interceptor-stack name="mgrStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="mgrAuth"/>
</interceptor-stack>
</interceptors>
调用eg:
<!-- 查看自己的非正常出勤 -->
<action name="viewUnPunch"
class="com.lxt.ssh.action.ViewUnAttendAction">
<!-- struts2自带拦截器-->
<interceptor-ref name="basicStack"/>
<!-- 自定义拦截器-->
<interceptor-ref name="empAuth"/>
<result>/WEB-INF/content/employee/viewUnAttend.jsp</result>
</action>
3)全局变量的定义
<global-results>
<result name="error">/error.htm</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
4)异常
a.全局异常(3中示例)
b.
5)后台表单验证
a.action中validate()验证
b.表单验证
6)转到另一个视图
<result type="chain">viewApp</result>、
viewApp也为一个action的name属性值
二.spring中使用自由调度Quartz
<!-- cronExpression指定Cron表达式:每月3日2时启动 -->
<bean id="cronTriggerPay"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"
p:cronExpression="0 0 2 3 * ? *">
<property name="jobDetail">
<!-- 使用嵌套Bean的方式来定义任务Bean
jobClass指定任务Bean的实现类 -->
<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean"
p:jobClass="org.crazyit.hrsystem.schedule.PayJob"
p:durability="true">
<!-- 为任务Bean注入属性 -->
<property name="jobDataAsMap">
<map>
<entry key="empMgr" value-ref="empManager"/>
</map>
</property>
</bean>
</property>
</bean>
<!-- 定义触发器来管理任务Bean
cronExpression指定Cron表达式:周一到周五7点、12点执行调度-->
<bean id="cronTriggerPunch"
---------------------------
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"
p:cronExpression="0 0 7,12 ? * MON-FRI">
----------------------------------------
<property name="jobDetail">
<!-- 使用嵌套Bean的方式来定义任务Bean
jobClass指定任务Bean的实现类 -->
<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean"
p:jobClass="org.crazyit.hrsystem.schedule.PunchJob"
--------------------------------------------------
p:durability="true">
<!-- 为任务Bean注入属性 -->
<property name="jobDataAsMap">
<map>
<entry key="empMgr" value-ref="empManager"/>
--------------------------------------------
</map>
</property>
</bean>
</property>
</bean>
<!-- 执行实际的调度调度 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerPay"/>
<ref bean="cronTriggerPunch"/>
---------------------------
</list>
</property>
</bean>
一.ssh框架整合
1.整合流程:
先整合可以测试的spring和Hibernate,测试没有问题之后再整合struts;
整合ssh细节及问题:
1)spring配置文件放置的位置问题:默认为:/WEB-INF/applicationContext.xml
;若放在其他地方配置好路径。若有多个配置文件需要启动是扫描,也需要进行配置<param-value>/WEB-INF/applicationContext.xml,
/WEB-INF/daoContext.xml</param-value>
2)若要测试spring需要进行加载applicationContext.xml获取javaBean
eg:通过ClassPathXml~读取applicationContext.xml
然后获取ctx.getBean()来获取javaBean
3)Hibernate配置文件放在spring(applicationContext-db.xml基本不修改的配置文件)配置文件中减少配置文件的数量;
配置的只要几点:
a.配置数据源dataSource连接数据库,用数据库连接池-c3p0(可用jdbc.properties/p:~配置)
b.配置sessionFactory引用数据源dataSource,注:使用spring中的sessionFactory
类:org.springframework.orm.hibernate4.LocalSessionFactoryBean;同时配置
扫描持久化类:(参考:http://blog.csdn.net/v123411739/article/details/21295525)
扫描配置文件(hbm.xml): mappingResources(列出全部配置文件的全部路径)、mappingDirectoryLocations(扫描路径)
扫描注解(annotation):annotatedClasses(列出全部全限定类名)、packagesToScan(扫描包路径)
c.指定数据库方言、是否自动建表、是否生成SQL语句等
d.配置Hibernate的局部事务管理器,使用HibernateTransactionManager类
并注入SessionFactory的引用
e.配置事务增强处理Bean,指定事务管理器
f.配置切入点
4)dao组件和业务逻辑组件:配置模板然后引用模板
a.dao组件为*Dao组件注入sessionFactory,dao继承了BaseDao即为为Hibernate注入sessionFactory
b.业务逻辑组件为*ServiceImpl注入*Dao
4.struts配置文件
1)常用常量constant
2)拦截器Interceptor~系统的和自定义的(看书)
a.struts2自带拦截器
<action name="first" class="action.FirstAction">
<interceptor-ref name="logger"/>
<interceptor-ref name="timer"/>
</action>
b.自定义拦截器<interceptors>
<!-- 配置普通员工角色的权限检查拦截器 -->
<interceptor name="empAuth"class=
"com.lxt.ssh.action.authority.EmpAuthorityInterceptor"/>
<!-- 配置经理角色的权限检查拦截器 -->
<interceptor name="mgrAuth"class=
"com.lxt.ssh.action.authority.MgrAuthorityInterceptor"/>
<!-- 配置普通员工的默认的拦截器栈 -->
<interceptor-stack name="empStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="empAuth"/>
</interceptor-stack>
<!-- 配置经理的默认的拦截器栈 --><interceptor-stack name="mgrStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="mgrAuth"/>
</interceptor-stack>
</interceptors>
调用eg:
<!-- 查看自己的非正常出勤 -->
<action name="viewUnPunch"
class="com.lxt.ssh.action.ViewUnAttendAction">
<!-- struts2自带拦截器-->
<interceptor-ref name="basicStack"/>
<!-- 自定义拦截器-->
<interceptor-ref name="empAuth"/>
<result>/WEB-INF/content/employee/viewUnAttend.jsp</result>
</action>
3)全局变量的定义
<global-results>
<result name="error">/error.htm</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
4)异常
a.全局异常(3中示例)
b.
5)后台表单验证
a.action中validate()验证
b.表单验证
6)转到另一个视图
<result type="chain">viewApp</result>、
viewApp也为一个action的name属性值
二.spring中使用自由调度Quartz
<!-- cronExpression指定Cron表达式:每月3日2时启动 -->
<bean id="cronTriggerPay"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"
p:cronExpression="0 0 2 3 * ? *">
<property name="jobDetail">
<!-- 使用嵌套Bean的方式来定义任务Bean
jobClass指定任务Bean的实现类 -->
<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean"
p:jobClass="org.crazyit.hrsystem.schedule.PayJob"
p:durability="true">
<!-- 为任务Bean注入属性 -->
<property name="jobDataAsMap">
<map>
<entry key="empMgr" value-ref="empManager"/>
</map>
</property>
</bean>
</property>
</bean>
<!-- 定义触发器来管理任务Bean
cronExpression指定Cron表达式:周一到周五7点、12点执行调度-->
<bean id="cronTriggerPunch"
---------------------------
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"
p:cronExpression="0 0 7,12 ? * MON-FRI">
----------------------------------------
<property name="jobDetail">
<!-- 使用嵌套Bean的方式来定义任务Bean
jobClass指定任务Bean的实现类 -->
<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean"
p:jobClass="org.crazyit.hrsystem.schedule.PunchJob"
--------------------------------------------------
p:durability="true">
<!-- 为任务Bean注入属性 -->
<property name="jobDataAsMap">
<map>
<entry key="empMgr" value-ref="empManager"/>
--------------------------------------------
</map>
</property>
</bean>
</property>
</bean>
<!-- 执行实际的调度调度 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerPay"/>
<ref bean="cronTriggerPunch"/>
---------------------------
</list>
</property>
</bean>
0 0
- 轻量级javaee最后工作流项目总结
- 轻量级JavaEE开发框架Spring知识总结
- GHGL项目最后总结
- 迎来最后的JAVAEE
- 今天开始“轻量级javaEE学习”
- 02 轻量级JavaEE相关技术
- 轻量级javaEE SSH 03: Spring
- 轻量级javaEE SSH 04: struts2
- 轻量级javaEE SSH 05: Hibernate
- JavaEE 轻量级常用框架原理
- 项目总结:工作流系统webservice服务
- 项目总结:工作流系统webservice服务
- JavaEE项目
- JavaEE总结
- javaEE总结
- JavaEE总结
- JavaEE-1-JavaWeb项目的部分思考总结
- MyEclipse开发JavaEE项目遇到问题的总结
- 设计模式-4-装饰者模式
- Java的加载资源文件+JavaBean+内省机制
- hdu2848 Visible Trees (容斥原理)
- c++ 时间函数全攻略
- Windows 下基于 Eclipse 的可视化远程 Linux 开发环境搭建
- 轻量级javaee最后工作流项目总结
- UVa 1589 Xiangqi
- Linux内核如何装载和启动一个可执行程序
- YCM和Ultisnips按键冲突解决方案(只使用TAB键,无错误)
- Microsoft.AspNet.Identity 3.0(一) 初始Identity结构
- JAVA多线程和并发基础面试问答
- ssh框架三者整合
- 分类雏形
- Android学习(14) -- 在内部存储空间中读写文件