OA项目环境搭建

作者: PublicDZ | 来源:发表于2017-08-28 16:11 被阅读147次

    1框架介绍

    1.1环境准备

    1、在eclipse中新建一个工作空间

    2、在window-pererferences-General-Workspace下把文本编码设置为UTF-8

    3、在window-pererferences-Validation下去掉所有验证

    4、在window-pererferences-Java-installed

    JREs选择安装的jdk

    5、在window-pererferences-Server-Runtime

    Envirement下选择安装的Tomcat服务

    6、虚拟机内存设置:

    -server -Xms512m -Xmx512m -XX:PermSize=512M -XX:MaxNewSize=512m -XX:MaxPermSize=512m

    1.2框架结构

    系统架构SSM:SpringMvc(请求转发响应)+Spring(主要用到注入)+Mybatis框架

    1.3需要的jar包

    1.4框架配置文件

    1、系统配置文件模板:

    2、系统配置文件引用图:

    2框架搭建

    1、新建一个项目,项目名称为:SSM(项目目录结构介绍)

    2、在项目的中引入1.3中的jar包,引入路径如下:

    SSM\WebContent\WEB-INF\lib

    2、按照框架搭建的顺序一步一步引入1.4中的配置文件模板,配置文件的内容顺序按照文档顺序添加

    2.1 web.xml配置

    按照文档讲述顺序添加到配置文件web.xml,位置SSM\WebContent\WEB-INF\web.xml

    2.1.1指定Spring字符集

    Set Character

    Encoding

    org.springframework.web.filter.CharacterEncodingFilter

    encoding

    utf8

    forceEncoding

    true

    Set Character

    Encoding

    /*

    2.1.2引入spring-context.xml

    contextConfigLocation

    classpath:config/spring-context.xml

    2.1.3配置Spring监听器

    org.springframework.web.context.ContextLoaderListener

    2.1.4引入spring-servlet.xml

    spring

    org.springframework.web.servlet.DispatcherServlet

    contextConfigLocation

    classpath:config/spring-servlet.xml

    1

    spring

    /

    2.2

    spring-servlet.xml配置

    按照文档讲述顺序添加到配置文件spring-servlet.xml,位置SSM\src\config\spring-servlet.xml

    2.2.1静态资源配置

    mapping="/static/**" /> -->

    "/"mapping="/**"/>

    2.2.2文件上传配置

    "multipartResolver"

    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

    "maxUploadSize"value="1000000"/>

    2.2.3 @ResponseBody乱码配置

    class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">

    "messageConverters">

    class="org.springframework.http.converter.StringHttpMessageConverter">

    "supportedMediaTypes">

    text/html;charset=UTF-8

    2.2.4 freemarker配置

    "freemarkerConfigurer"class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

    "templateLoaderPath"value="/application/admin"/>

    "defaultEncoding"value="UTF-8"/>

    "freemarkerSettings">

    "template_update_delay">10

    "locale">zh_CN

    "datetime_format">yyyy-MM-dd HH:mm:ss

    "date_format">yyyy-MM-dd

    "time_format">HH:mm:ss

    "number_format">#.##

    "freeMarkerViewResolver"class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

    "contentType"value="text/html;charset=UTF-8"/>

    "viewClass"value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>

    "suffix"value=".ftl"/>

    "cache"value="true"/>

    "exposeSessionAttributes"value="true"/>

    "exposeRequestAttributes"value="true"/>

    "exposeSpringMacroHelpers"value="true"/>

    "allowSessionOverride"value="true"/>

    "order"value="1"/>

    2.2.5扫描Controller注解

    "com.qianfeng"

    use-default-filters="false">

    "annotation"

    expression="org.springframework.stereotype.Controller"/>

    2.3

    spring-context.xml配置

    按照文档讲述顺序添加到配置文件spring-context.xml,位置SSM\src\config\spring-context.xml

    2.3.1引入application-mybatis.xml

    "./application-mybatis.xml"/>

    2.3.2事务管理配置

    "transactionManager"

    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    "dataSource"ref="dataSource"/>

    "txAdvice"transaction-manager="transactionManager">

    "add*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    "insert*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    "create*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    "delete*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    "remove*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    "update*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    "modify*"propagation="REQUIRED"read-only="false"

    rollback-for="java.lang.Exception"/>

    -->

    "pointCut"

    expression="execution(*

    com.qianfeng..service.*.*(..))"/>

    "pointCut"advice-ref="txAdvice"/>

    2.3.3扫描Service注解

    "com.qianfeng"

    use-default-filters="false">

    "annotation"

    expression="org.springframework.stereotype.Service"/>

    2.4 application-mybatis.xml配置

    按照文档讲述顺序添加到配置文件application-mybatis.xml,位置SSM\src\config\application-mybatis.xml

    2.4.1引入数据源文件application-datasource.xml

    "./application-datasource.xml"/>

    2.4.2 mybatis扫描配置

    "sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

    "dataSource"ref="dataSource"/>

    "typeAliasesPackage"value="com.qianfeng.application.model"/>

    "mapperLocations"value="classpath*:com/qianfeng/application

    /mapping/*.xml"/>

    "configurationProperties">

    "logImpl">LOG4J

    "org.mybatis.spring.mapper.MapperScannerConfigurer">

    "basePackage"value="com.qianfeng.application.dao"/>

    "sqlSessionFactoryBeanName"value="sqlSessionFactory"/>

    2.5

    application-datasource.xml配置

    按照文档讲述顺序添加到配置文件application-datasource.xml,位置SSM\src\config\application-datasource.xml

    2.5.1创建数据库

    1、通过Navicat新建一个数据库

    2、在新建的数据库中导入sql脚本

    2.5.2数据库连接池配置

    "dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close">

    "url"value="jdbc:mysql://127.0.0.1:3306/ssm_oa_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull"/>

    "username"value="root"/>

    "password"value="root"/>

    "filters"value="stat"/>

    "maxActive"value="20"/>

    "initialSize"value="10"/>

    "maxWait"value="60000"/>

    "minIdle"value="5"/>

    "timeBetweenEvictionRunsMillis"value="3000"/>

    "minEvictableIdleTimeMillis"value="300000"/>

    "validationQuery"value="SELECT

    'x'"/>

    "testWhileIdle"value="true"/>

    "testOnBorrow"value="false"/>

    "testOnReturn"value="false"/>

    "poolPreparedStatements"value="true"/>

    "maxPoolPreparedStatementPerConnectionSize"value="100"/>

    2.5.3 Spring与数据库的乱码(根据情况引入)

    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

    "messageConverters">

    "com.qianfeng.common.tools.UTF8StringHttpMessageConverter">

    3环境测试

    3.1系统结构

    3.1.1后台代码文件结构

    配置文件路径:/SSM/src/config

    后端业务类存放路径:/SSM/src/com/qianfeng/application

    后端公共类存放路径:/SSM/src/com/qianfeng/common

    前端代码存放路径:SSM\WebContent\application\admin

    前端静态文件存放路径:SSM\WebContent \static

    如下图:

    3.1.2后台代码层次结构

    3.2数据访问层

    3.2.1代码生成工具

    工具介绍:

    使用:

    1、将生成工具压缩包减压到某个目录

    2、配置配置文件:generator.xml(引入数据库驱动包、修改数据库连接、配置生成代码存放的路径、配置需要生成代码的数据库表【3.2.2介绍】)

    3、进入cmd命令行窗口

    4、进入工具所在目录:cd /d D:/mybatis-generator-core-1.3.1

    5、执行如下命令:

    java -jar lib/mybatis-generator-core-1.3.1.jar -configfile generator.xml-overwrite

    3.2.2生成代码

    在generator.xm文件中配置(以SYS_ORG为例):

    1、引入数据库驱动包

    2、修改数据库连接

    3、配置生成代码的路径

    4、配置需要生成代码的数据库表

    5、进入cmd命令行窗口,进入工具所在目录:cd /d E:/MyFolder/mybatis-generator-core-1.3.1

    6、执行如下命令:

    java -jar lib/mybatis-generator-core-1.3.1.jar -configfile generator.xml-overwrite

    6、执行相关命令后生成如下代码

    8、把生成的代码拷贝到项目中

    8、生成代码分析

    3.3数据访问层

    1、在OrgMapper.xml新增一个简单列表查询方法

    "queryOrgListByOrgParentId"resultMap="BaseResultMap"parameterType="java.util.Map">

    select

    "Base_Column_List"/>

    from sys_org Owhere 1=1

    "orgParentId

    != null and orgParentId != ''">

    AND O.ORG_PARENT_ID = #{orgParentId,jdbcType=BIGINT}

    2、在OrgMapper.java新增一个简单列表查询方法(注意方法名和参数与xml对应)

    publicList queryOrgListByOrgParentId( Map

    Object>paramMap);

    3.3服务层

    1、在\SSM\src\com\qianfeng\application下新建一个service包

    2、在service包创建服务层接口类xxxService,在接口中创建方法:

    publicList queryOrgListByOrgParentId( Map

    Object>paramMap);

    3、在service包创建服务层实现类xxxServiceImpl并实现xxxService接口

    4、在xxxServiceImpl加入@Service注解,注入数据访问层后重新方法

    (1)注解:@Service(value ="orgServiceImpl")

    (2)引入数据访问层注入:

    @Autowired

    privateOrgMapperorgMapper;

    (3)重写方法:

    publicList queryOrgListByOrgParentId(MapparamMap) {

    returnorgMapper.queryOrgListByOrgParentId(paramMap);

    }

    3.4控制层

    1、在\SSM\src\com\qianfeng\application下新建一个controller包

    2、在controller包中创建xxxxController类

    3、在xxxxController类上加入注解和映射(映射可选)

    @Controller

    @RequestMapping("/xxx")

    4、加入注入

    @Resource(name="orgServiceImpl")

    privateOrgServiceorgService;

    5、创建方法

    @RequestMapping(method=RequestMethod.GET,value="/queryOrgListByOrgParentId")

    publicvoidqueryOrgListByOrgParentId(HttpServletRequestrequest,HttpServletResponseresponse){

    MapparamMap=this.getParam(request);

    ListretList=orgService.queryOrgListByOrgParentId(paramMap);

    Gsongson=newGson();

    StringresponseContent=gson.toJson(retList);

    PrintWriterwriter=null;

    try{

    response.setCharacterEncoding("GBK");

    //针对ajax中页面编码为GBK的情况,一定要加上以下两句

    response.setHeader("Cache-Control","no-cache");

    response.setContentType("text/html;charset=UTF-8");

    writer=response.getWriter();

    if(responseContent==null||"".equals(responseContent)

    ||"null".equals(responseContent)) {

    writer.write("");

    }else{

    writer.write(responseContent);

    }

    }catch(IOExceptione) {

    thrownewRuntimeException(e);

    }finally{

    if(writer!=null) {

    writer.flush();

    writer.close();

    }

    }//responseend

    }

    5、从模板中引入公共类BaseController.java,这个类中封装了一些方法。

    3.5用浏览器测试环境

    1、测试地址:

    直接查看:http://localhost:8080/SSM/org/queryOrgListByOrgParentId

    加入参数查看:http://localhost:8080/SSM/org/queryOrgListByOrgParentId?orgParentId=1

    数据库中查看:SELECT * fromSYS_Org;

    测试示例回顾:从浏览器端到数据库端


    相关文章

      网友评论

        本文标题:OA项目环境搭建

        本文链接:https://www.haomeiwen.com/subject/iadgdxtx.html