jd学习笔记2
来源:互联网 发布:网络运营推广方案模板 编辑:程序博客网 时间:2024/05/24 01:48
Demo学习笔记:
一、首先这个Demo是分成4个module:
1.common:里边有些复用性高,其他module共用的代码比如(导出,分页,workEngine)。
2.project:里边有项目中用到的代码,包括:基于MVC设计模式的代码实现,工具类,自定义的枚举类等等。
3.web:里边包括spring容器(其中包括springMVC,velocity,mybatis的集成)的配置,jsf的配置,项目中用到的页面,网页中用到的资源等等。
4.worker:里边包括项目中的任务配置(包括定时任务和事件驱动任务)。
二、项目中module之间的调用关系
1.project模块和worker模块都会调用到common模块中的代码,所以**common会打成jar包添加到 project和worker的maven中。**2.**project也会打成jar包添加到web的maven中。**3.**web和worker将会打成war包进行部署。**
三、基于velocity页面设计方式
1.首先在配置velocity的时候可以先指定一个页面的默认的layout, 里边有页面重复的代码。** 包括页面的header,bottom 包括用到的jar包,和网站的信息、<html><body></body></html>标签。**2.根据不同的请求、响应,创建不同的子页面,子页面只需要实现某个<div>或者是<class>中的内容,然后填充在默认模板中**$screen_content**的占位符中。
四、velocity渲染页面的过程:
velocity把请求的模板进行渲染,然后将渲染的结果(String类型的字符串),作为参数返回给layout页面,参数名称就是screen_content(这时它就相当于一个变量),然后就相当于velocity调用这个变量,产生页面。
代码学习笔记:
一、关于命名方式
除了包名,配置文件名,其他(包括类名,属性名,方法名)都应遵照驼峰式命名规则。
二、关于方法的参数
方法中所需要参数应保持格式整齐和必要的缩进,方便查找和修改。
三、关于SQL语句的格式
在Mybatis中的映射文件中,sql语句应该垂直编写,不同的列属性应垂直排放,方便查看
四、必要的数据校验
在controller中应该对请求中大部分参数设置默认值,并且的必要的参数进行校验,防止程序异常。
五、对数据库敏感操作 添加状态值判断
在进行整体更新或者删除操作时,应该添加状态值 ,避免出重复更新,幻读的现象
在进行数据库操作时,应该对成功与否进行判断,如果失败了即使抛出异常,好让事务进行回滚,进行回滚,进行回滚,说三遍。
六、应该给整个项目添加全局异常处理
添加springMVC的全局异常处理器,给程序兜底,防止没有拦截到的错误暴露给客户,终止程序。
JSF学习笔记:
JSF适合于分布式架构下,服务与服务之间的同步调用,解决同时访问一个服务造成并发量大的问题。也就是同一个服务可以分散开。
JSF 特性:
水平扩展:一个服务有多个服务器可以选择,JSF会自动选择负载娇小的服务器 已达到负载均衡。 多次请求:同过JSF调用的服务如果响应失败不会立即返回错误结果,而是会在注册中心多次尝试直到超时。
1.JSF的发布:
在配置文件中添加服务的实现类(相应的Bean)
在配置文件中声明JSF的注册中心 比如:i.jsf.jd.com
添加Server 指明端口号、协议 等等
发布服务 interface地址/alias/引用的实现(注册的Bean)/注册的Server
2.JSF的调用:
在配置文件声明服务的注册中心
消费服务 指明interface地址/alias/protocol/timeout等属性。
注意
同一个接口不能同时发布两个服务,这样会导致第二个服务发布不了,因为这时接口已经被第一个服务导出。
如图所示
请求服务 customer ———————————registry—————————————provider 返回相应实现
worker学习笔记:
Demo中的worker是基于Quartz实现的,所以使用worker 需要往spring中声明WorkerQuartzUtil的bean,并指明一些必要属性包括ApplicationId,taskManager,basePages(用来扫描包下的workerEngine),或者自己注入任务类。自定的worker任务类需要实现CycleWorkerEngine或者MysqlTaskWorkerEngine接口然后重写一些方法(类似getWorkTypeCode),相当于在TaskManager中注册相应的任务类。
- jd学习笔记2
- jd学习笔记
- JD(2)
- jd
- jd
- JD
- JD
- jd 1面+2面(2面挂掉)
- 反编译的2个工具jd-gui和JAD
- JAVA反编译的2个利器jd-gui和JAD
- JD-Eclipse
- JD-Eclipse_4you
- AL JD
- JD-Eclipse
- jd-eclipse
- JD(2014)
- JD(3)
- JD所用
- canvas中的save和restore方法的作用
- 真正的一行注解处理Android23+权限
- 交叉编译ss-redir
- 解析带有转义字符的json
- 3个不同的因子
- jd学习笔记2
- java_toString
- 如何在 GitHub 上创建代码仓库
- SnapHelper,对RecyclerView的功能拓展
- 单例
- 用tf.slim微调vgg模型时遇到的小坑
- Eclipse中修改SVN用户名和密码方法
- RabbitMQ相关
- Android8.0 Do not disturb(DND)/Zenmode 添加一个新的模式