小米官网业务流程总结

发布时间:2018-07-01 09:08:54   来源:文档文库   
字号:

小米官网业务流程总结

在线支付

使用易宝在线支付平台

按照易宝支付范围与易宝支付网关对接。

接收易宝的两种应答机制,针对点对点应答给予回复

处理多次应答照成的数据库重复确认

应答机制:应答机制是指当贵公司系统收到易宝支付的支付成功数据通知(服务器点对点通讯形式)时,必须回写以“success”开头的stream,易宝支付收到该stream,便认为贵公司已收到;否则将继续发送通知,直至收到。

hmac是一种对称密钥验证算法。通过请求参数拼接的字符串和贵公司在易宝支付的密钥生成。作用是防止恶意篡改请求数据。

预约和限时抢购

小米官网技术问题总结

Servlet和JSP的区别:

Servlet是SUN公司制定的一种用于扩展WEB服务器的功能组件,由于我们的WEB服务器原本是没有计算能力的,不能够处理动态资源。

JSP是SUN公司开发的一种服务器端动态页面生成技术,其主要组成部分是html元素以及少量的java代码(实际开发中都会被标签代替掉)。

区别:JSP侧重于视图表现,Servlet主要用于控制业务逻辑的走向。

JSP实质上也是是一个Servlet

Servlet的生命周期

所谓的Servlet生命周期是指:Servlet容器如何去创建Servlet实例,

分配资源,调用其方法,最后销毁的过程。

1.实例化,调用默认的构造器,创建对象。创建对象的时机:(1).当请求到达Servlet容器时,如果要访问的Servlet没有对应的实例,则会创建,该实例只有一份。(2).启动服务器是,会检查web.xml中是否有相应的配置,如果有则创建对象。

2.初始化,Servlet容器创建Servlet实例后,会执行init()方法进行初始化。

3.执行service()方法。它会依据get/post请求调用对应的doGet()和doPost()方法。

4.掉用destroy()方法,释放资源。

Java中的反射机制

所谓的Java反射机制就是:Java的自我管理机制,它通过Class类来管理正在运行中的Java类。

Java反射机制具有以下功能:1.在运行时判断任意一个对象所属的类。

2.运行时构造任意一个类的对象。3.运行时判断任意一个类所具有的成员变量和方法。4.运行时调用任意一个方法。总之,反射机制动态的创建对象和编译,提高了程序的灵活性。

项目中的应用:请求中设置一个method参数,它的值使我们要调用的方法名字。然后写一个BaseServlet的类,通过反射来调用该方法。

ClassLoader

ClassLoader是类的加载器,用来加载Java类到JVM虚拟机当中去的。当我们的Java程序运行时,先会启动Java虚拟机,然后由ClassLoader负责将 .class 文件加载的虚拟机中。

它有两种加载方式:1.预先加载 2.按需加载,即只有实例化一个类的时候才会被ClassLoader载入。

Hibernate的特点:

Hibernate 是一款ORM框架。ORM即对象关系映射,可以将数据库中的

记录转换为Object,开发人员可以通过对Object的操作完成对数据库的操作。

它的优点:1.JDBC访问数据库的操作封装在底层,简化了操作。

2.采用了Java的反射机制,灵活了很高。

3.性能非常好,能够很好地映射关系型数据库中各种复杂的关系。

4.采用了延迟加载思想和缓存机制,大大的提高了性能。

Hibernate缓存问题:

1. Session何时刷出缓存:

1)事务提交时----tx.commit();

2)Query查询时---query.list();

3)手动调用session.flush();

2、操作缓存相关方法

1flush:刷出缓存,使用缓存中的数据更新数据库中的数据

2clear:清空session中的所有数据

3evict:清除指定对象在一级缓存中的引用

4refresh:使用数据库中的数据覆盖缓存中的数据

Spring的优点:

1. 使用SpringIOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

2. 可以提供众多服务,事务管理,WS等。

3. AOP的很好支持,方便面向切面编程。

4. 对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA

5. Spring DI机制降低了业务对象替换的复杂性。

6. Spring属于低侵入,代码污染极低。

7. Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或完全。

Spring的IOC是什么?AOP又是什么?

IOC(控制反转):程序中各个组件之间的关系不是由程序代码直接操控,而是由容器操控,控制权由应用代码中转到外部容器。

DI(依赖注入):程序中个组件的依赖关系不是在程序中写死的,而是在外部的配置文件中配置,然后再运行时通过容器动态注入。

AOP(面向切面编程)

C3P0连接池

连接池的原理:为数据库连接建立一个“缓冲池”,预先在缓冲池中存放一定数量的连接,当需要连接的时候就从“缓冲池“中去取,用完之后再放回来。

使用连接池的好处:1.可以资源重用,即可以重用连接,避免了频繁的创建、释放连接而引起的性能开销。

2.提高了系统的响应时间。

3.统一的管理连接,避免了数据连接泄露。

数据库的三范式

第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解。

第二范式:2NF是对记录的唯一性约束,要求记录有唯一标识,即实现唯一性。要求数据库表中的每个实例或行必须可以被惟一地区分要求实体的属性完全依赖于主关键字。

第三范式:3NF是对字段冗余性的约束。

事物的处理方式

我们的事务处理都是放在业务层,对于同一个事务我们需要的是同一个Connection连接。如果我们将Connection连接参数放在业务层,明显是不合理的。那么如何处理?将事务封装,然后分离出去。也就说我们可以写一个帮助类来专门的处理事务,这样做必须依赖于c3p0连接池技术,同时要防止并发问题。如何处理并发,我们可以使用ThreadLocal线程本地变量来保存当前线程的连接。

本文来源:https://www.2haoxitong.net/k/doc/dd550e515a8102d276a22f93.html

《小米官网业务流程总结.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式