java bos项目详细介绍一

BOS项目 第1天

 

项目12天安排:

1-2天:项目概述、搭建开发环境、主页设计、持久层和表现层设计

3-6天:项目业务开发(取派员、区域、分区、定区、业务受理)---整个项目分为基础设置、取派、中转、路由、报表

7-8天:权限控制、权限管理----apache shiro

9-11天:工作流开发----activiti

12天:总结

 

今天内容安排:

1、项目概述(背景、常见软件类型、软件开发流程(瀑布模型))

2、搭建开发(数据库、web项目、SVN管理项目)

3、主页设计(jQuery easyUI)

4、UML工具使用PowerDesigner

 

1.        项目概述

1.1        项目背景介绍

BOS----Bussiness Operating System业务操作系统

甲方:宅急送物流公司,软件的使用方

乙方:用友软件,软件的开发方

 

本项目属于宅急送公司二期改造项目

项目的团队人数20多个人,项目开发周期1年多(13个月),编码阶段4个月。

1.2        常见的软件类型

OA:办公自动化系统

CRM:客户关系管理系统

ERP:企业资源计划平台

CMS:content Mangement System

 

1.3        软件开发流程(瀑布模型)

0、可行性分析

1、需求调研分析----需求规格说明书

2、设计阶段(概要设计、详细设计)----数据库设计、原型设计

3、编码阶段(单元测试)

4、测试阶段(系统测试、白盒测试、黑盒测试)

5、上线和运维

 

敏捷开发

 

1.4        开发环境

1.5        技术选型

 

2.        搭建开发环境

2.1        数据库环境

第一步:创建一个数据库

第二步:创建一个数据库用户

第三步:为创建的用户授权

第四步:使用新创建的数据库用户登录MySQL系统

 

2.2        web项目环境

第一步:创建一个动态web项目

第二步:导入jar包(SSH、spring依赖、日志、数据库驱动)

第三步:配置web.xml(struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器)

  bos

 

 

    shiroFilter

    org.springframework.web.filter.DelegatingFilterProxy

 

 

    shiroFilter

    /*

 

 

    characterEncodingFilter

    org.springframework.web.filter.CharacterEncodingFilter

   

      encoding

      UTF-8

   

 

 

    characterEncodingFilter

    /*

 

 

    openSession

    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

 

 

    openSession

    /*

 

 

    contextConfigLocation

    classpath:applicationContext.xml

 

 

    org.springframework.web.context.ContextLoaderListener

 

 

    strust2

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

 

 

    strust2

    /*

    REQUEST

    FORWARD

 

 

    login.jsp

 

 

第四步:创建项目目录结构

第五步:在config目录中提供struts2的配置文件

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.devMode" value="true" />

      <constant name="struts.objectFactory" value="spring"/>

      <package name="basicstruts2" extends="struts-default">

          

           "page_*_*">

                 "success" type="dispatcher">/WEB-INF/pages/{1}/{2}.jsp

          

      package>

struts>

第六步:在config目录下提供spring的配置文件applicationContext.xml

      <context:property-placeholder location="classpath:jdbc.properties"/>

                                 

     

      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

           <property name="driverClass" value="${driverClass}"/>

           <property name="jdbcUrl" value="${jdbcUrl}"/>

           <property name="user" value="${user}"/>

           <property name="password" value="${password}"/>

      bean>

     

      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

           <property name="dataSource" ref="dataSource"/>

          

           <property name="hibernateProperties">

                 <props>

                      <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialectprop>

                      <prop key="hibernate.show_sql">trueprop>

                      <prop key="hibernate.format_sql">trueprop>

                      <prop key="hibernate.hbm2ddl.auto">updateprop>

                 props>

           property>

          

           <property name="mappingDirectoryLocations">

                 <list>

                      <value>classpath:com/itheima/bos/domainvalue>

                 list>

           property>

      bean>

     

     

      <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

           <property name="sessionFactory" ref="sessionFactory"/>

      bean>

     

     

      <context:component-scan base-package="com.itheima.bos"/>

     

      <context:annotation-config/>

     

      <tx:annotation-driven />

第七步:提供项目所需的资源文件

注意,web.xml中配置服务器内部转发经过struts2过滤器处理

FORWARD

2.3        使用svn管理项目代码

第一步:创建一个SVN仓库

第二步:修改SVN的配置文件

svnserve.conf:

passwd:

authz:

第三步:启动SVN服务,使用批处理文件

第四步:将搭建的web项目共享到SVN仓库

3.        主页设计---jQuery EasyUI插件

jQuery EasyUI目录结构:

 

l  在jsp页面中引入easyUI相关的资源文件

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/default/easyui.css">

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/icon.css">

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js">script>

<script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/jquery.easyui.min.js">script>

3.1        layout页面布局

这个布局容器,有五个区域:北、南、东、西和中心。 他中心地区面板是必需的,但是边缘地区面板是可选的。每一个边缘地区面板可以缩放的拖动其边境, 他们也可以通过点击其收缩触发.布局可以嵌套,从而用户可以建立复杂的布局,他想要的。

<body class="easyui-layout">

     

      <div title="XX管理系统" data-options="region:'north'" style="height: 100px">北部区域div>

      <div title="系统菜单" data-options="region:'west'" style="width: 200px">西部区域div>

      <div data-options="region:'center'">中心区域div>

      <div data-options="region:'east'" style="width: 100px">东部区域div>

      <div data-options="region:'south'" style="height: 50px">南部区域div>

body>

3.2        accordion折叠面板

           <div class="easyui-accordion" data-options="fit:true">

                

                 <div title="面板一">棉衣一div>

                 <div title="面板二">test2div>

                 <div title="面板三">test3div>

           div>

3.3        tabs选项卡面板

           <div class="easyui-tabs" data-options="fit:true">

                

                 <div data-options="closable:true,iconCls:'icon-help'" title="面板一">棉衣一div>

                 <div title="面板二">test2div>

                 <div title="面板三">test3div>

           div>

 

3.4        动态添加选项卡

<a class="easyui-linkbutton" onclick="doAdd();">百度a>

                      <script type="text/javascript">

                                  function doAdd(){

                                       //动态添加一个选项卡面板

                                       $("#tt").tabs("add",{

                                             title:'这个可是动态的',

                                             content:'',

                                             closable:true,

                                             iconCls:'icon-search'

                                       });

                                  }

                      script>

 

4.        ztree树形插件---jQuery插件

目录结构:

l  在jsp页面中引入ztree相关的资源文件

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js">script>

<link rel="stylesheet" href="${pageContext.request.contextPath }/js/ztree/zTreeStyle.css" type="text/css">

<script type="text/javascript" src="${pageContext.request.contextPath }/js/ztree/jquery.ztree.all-3.5.js">script>

4.1        使用标准json数据构造ztree

<ul id="ztree1" class="ztree">ul>

<script type="text/javascript">

      $(function(){

           //当页面加载完成后,动态创建ztree菜单

           var setting = {};//设置ztree相关的属性

           //构造json数据

           var zNodes = [

                         {name:'系统管理'},//每个json对象对应一个节点数据

                         {name:'用户管理',children:[

                                                  {name:'用户添加'},

                                                  {name:'用户修改'}

                                                ]},//每个json对象对应一个节点数据

                         {name:'权限管理'}//每个json对象对应一个节点数据

                         ];

           //创建ztree

           $.fn.zTree.init($("#ztree1"),setting,zNodes);

      });

script>

4.2        使用简单json数据构造ztree(建议)

<ul id="ztree2" class="ztree">ul>

<script type="text/javascript">

      $(function(){

           //当页面加载完成后,动态创建ztree菜单

           var setting2 = {

                            data: {

                                       simpleData: {

                                             enable: true//启用简单json数据描述节点数据

                                       }

                            }

                      };//设置ztree相关的属性

           //构造json数据

           var zNodes2 = [

                         {id:'1',pId:'0',name:'系统管理'},//每个json对象对应一个节点数据

                         {id:'2',pId:'0',name:'用户管理'},//每个json对象对应一个节点数据

                         {id:'21',pId:'2',name:'用户添加'},//每个json对象对应一个节点数据

                         {id:'22',pId:'2',name:'用户修改'},//每个json对象对应一个节点数据

                         {id:'3',pId:'0',name:'权限管理'}//每个json对象对应一个节点数据

                         ];

           //创建ztree

           $.fn.zTree.init($("#ztree2"),setting2,zNodes2);

      });

script>

效果:

 

4.3        发送ajax请求获取菜单数据构造ztree

<ul id="ztree3" class="ztree">ul>

<script type="text/javascript">

      $(function(){

           var setting3 = {

                      data : {

                            simpleData : {

                                  enable : true

                            //启用简单json数据描述节点数据

                            }

                       }

                 };//设置ztree相关的属性

          //发送ajax请求获取json数据构造ztree

          var url = "${pageContext.request.contextPath}/json/menu.json";

           $.post(url,{},function(data){

                 //创建ztree

                 $.fn.zTree.init($("#ztree3"), setting3, data);

           },'json');

      });

script>

效果:

4.4        为ztree节点绑定事件

<ul id="ztree3" class="ztree">ul>

<script type="text/javascript">

      $(function(){

           var setting3 = {

                      data : {

                            simpleData : {

                                  enable : true

                            //启用简单json数据描述节点数据

                            }

                      },

                      callback: {//绑定事件

                            onClick: function(a,b,treeNode){

                                  var page = treeNode.page;

                                  if(page != undefined){//需要打开选项卡

                                       //判断当前选项卡是否已经打开

                                       var e = $("#tt").tabs("exists",treeNode.name);

                                       if(e){

                                             //已经打开

                                             $("#tt").tabs("select",treeNode.name);

                                       }else{

                                             $("#tt")

                                             .tabs(

                                                        "add",

                                                        {

                                                              title : treeNode.name,

                                                              content : '',

                                                              closable : true,

                                                              iconCls : 'icon-edit'

                                                        });

                                       }

                                  }

                            }

                      }

                 };//设置ztree相关的属性

          //发送ajax请求获取json数据构造ztree

          var url = "${pageContext.request.contextPath}/json/menu.json";

           $.post(url,{},function(data){

                 //创建ztree

                 $.fn.zTree.init($("#ztree3"), setting3, data);

           },'json');

      });

script>

 

 

你可能感兴趣的:(bos)