工程实践

.VM文件中定义变量规范

定义多个变量时变量名不能相同,并且不能仅仅是在一个变量后加一个数字的不相同。项目中使用result,result2,result4等多个变量时展示结果会重复。(也不是不能相同,只是赋值时右边为null则左边的值不变)

端口问题

HTTP端口和JMX端口都会用到,JMX端口不会随服务关闭而关闭(服务关了但进程可能没关),修改下JMX端口即可。启动报的HTTP1.1  bind  8443之类的是tomcat的HTTP端口重复的问题,需要配置下server.xml文件。

switchHost:

根据域名找ip的工具。跟tomcat中给项目配置ip及端口号是两码事。

不同环境项目间的调用都要配host,比如本地用图形化工具配,而测试环境在配置文件配host(jsf调用不用配host)

IDEA的debug:

该模式下左下角框里的左侧有两个图标:三个方格是恢复视图窗口的意思,照相机是线程分析的意思

debug断点中开启java Exception 断点可捕获难捕获的异常,比如上次以为查数据库有问题

项目启动时配置文件加载过程:

web.xml配置context-param,listener引入spring-config.xml(替代代码里new一个spring容器),spring容器必须有,bean可以用注解来代替

spring-config.xml使用import导入其他配置文件

<context标签和写注解缺一不可,配置里写过<bean就不要再写注解了以防冲突

http://outofmemory.cn/java/spring/spring-DI-with-annotation-context-component-scan

<context:annotation-config/>开启注解注入

<context:component-scan base-package="com.jd.ihhotel.man.webapp" />配置spring扫描的范围,扫描不到的使用<import导入即可。

编译错误:(不知道是否和环境问题里的编译顺序问题一样引起的)

[ERROR] /export/gitwork/ihsupplier.jd.com/ihhotel-supplier-service/src/main/java/com/jd/ihhotel/supplier/biz/partnerapi/expedia/ExpediaPriceCheckServiceImpl.java:[76,23] 找不到符号
  符号:   方法 setUserPin(java.lang.String)

  位置: 类型为com.jd.trip.ghotel.sip.inner.domain.rateplan.request.HotelBookQuery的变量 hotelBookQuery

位置里报的是哪个类型的变量,编译时候找不到的便是此变量对应的类型。

spring配置其他工具或插件时如果需要定义bean,在同一个配置文件中,bean要先定义,否则可能报bean找不到的错误,比如配置jsf时候报的错。

项目结构:

common工具类包,domain所有对象包(bo(根据业务划分为不同bo,service层的直接输出对象),entity(根据业务划分成不同do,是dao层的返回对象),query(封装查询参数,分页等)),dao持久层包(mapper,dao.只放mapper.xml文件和数据库操作类dao),service包,web控制层包(杰夫接口必须有自己的domain包(给其他系统提供依赖时只提供自己模块的jar就可以了),其他模块则公用domain)

dao(持久层接口),daoimpl(持久层实现),filter(过滤器),action(action),util(工具类包),bean(实体类包),service(业务层接口),serviceimpl(业务层实现),interceptor(拦截器)
每个公司要求都不一样,有搭建好的项目框架给你,我是做web的,大多数都是这么几个包,只是名不同

1.entity字段必须和数据库字段一样
2.model前端需要什么我们就给什么
3.domain很少用,代表一个对象模块

分层领域模型规约:

  • DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
  • DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象(系统间调用如杰夫接口用此封装返回对象而不用BO,非系统间调用用BO)。
  • BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
  • AO( Application Object):应用对象。 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。
  • VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
  • POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
  • Query:数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。

领域模型命名规约:

  • 数据对象:xxxDO,xxx即为数据表名。
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

普通异常抛出和打印(JSON)很重要
} catch (Exception e) {
    logger.error("ManOrderServiceGateway.getOrders: 获取订单方法发生异常,"
            + "异常信息e={}", JSON.toJSON(e));
    return null;(对应方法返回)
}

猜你喜欢

转载自blog.csdn.net/u010287873/article/details/79316632
今日推荐