• SpringMVC项目模块浅析


    本文为个人笔记,对于springmvc模块的规划,仁者见仁、智者见智,请不要生搬硬套。

    一、基础模块-basic

    主要内容是dao、spring-xml、domain、service等内容,模块内分层如下:

    dao 持久层的实现主要有ibatis和mybatis,根据需要选择。

    service

    domain 实体类

    rpc-api 接口层

    web 服务发布层

     

    dao层的注意事项:

    <1> resource中除了配置各表的xml,还需要配置sqlmap-config。

    <result property="enumCode" column="enum_code"/>

    注意这条语句,它对数据库字段做了一个映射,前面是程序中实现的实体类,后面是数据库字段。

    <2> 每个dao类都需要继承BaseDao。

    <3> 顺便讲一数据库设计规范:见另一篇文章

     

    二、服务层-service

    <1> spring-mvc中需要进行注入,注入有两种方式:注解注入和set注入

    a、注解注入方式

    @Resource

    private InsRiskRuleService insRiskRuleService;

    b、set注入方式

    public void setInsRiskRuleService(InsRiskRuleService insRiskRuleService) {

    this.insRiskRuleService = insRiskRuleService;

    }

     

    <2>声明bean的两种方式: 注解和xml配置

    a、注解的方式

    @Service

    public class InsRiskRuleService {......}

    @Component

    public final class PayClient {}

    但是这个需要在spring-config.xml中进行配置注入,否则不起作用。

    <context:component-scan base-package="com.jd.*">

    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

    <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>

    </context:component-scan>

    这个注解是把com.jd包下所有的@Compontant 及它的子类注解的类,生命为bean的方式

    b、xml配置bean的方式

    <bean id="insRiskRuleDao" class="com.jd.ins.risk.basic.dao.InsRiskRuleDao"/>

    <bean id="insRiskRuleService" class="com.jd.risk.basic.service.InsRiskRuleService"/>

     

    三、实体类层-domain

    有一个生成快捷键:Alt + Insert 键。

     

    四、接口层rpc-api

    rpc-api层有两块的主要内容:接口Interface和DTO实体类(Data Transfer Object 数据传输对象)。

    接口比较好理解,这里就不详细介绍了,主要讲一下DTO实体类。

    之前我做接口的时候,自己使用的实体类和暴露给使用的是同一个实体类,这样就会有以下问题:(1). 有不需要传递的对象会传递了,浪费了资源。(2). 别一个就是你把你的隐私也暴露给别人了。因此这个DTO里只给对方需要的字段。

     

    接口做好了,但是还需要实现,否则接口不清楚你要干什么。实现是要放到service层的,最好要和service分开,这样清晰、便于管理。实现类一般以impl为结尾。

     

    五、应用层web

    模块做好了,需要发布到站点别人才可以调用,所以就需要一个web服务层。

    web层主要是对项目进行spring-mvc配置,还有一些常规配置,如用户名密码等。

     

    关于WEB层的开发:

    我们的整个框架使用的是spring-mvc,持久层使用的是ibatis,表现层使用的是vm,前端使用的是H5,数据库使用的是MySQL、MongoDB、HBase等。

  • 相关阅读:
    C/C++——二维数组与指针、指针数组、数组指针(行指针)、二级指针的用法
    C/C++——C语言数组名与指针
    C/C++——C语言跳出多重循环方法
    知识储备——国际象棋术语中英文对照
    C/C++——C语言库函数大全
    C/C++——C语言常用库函数
    C/C++——[05] 函数
    C/C++——[04] 语句
    C/C++——[03] 注释
    C/C++——[02] 运算符和表达式
  • 原文地址:https://www.cnblogs.com/hunttown/p/6707231.html
Copyright © 2020-2023  润新知