赞
踩
1.1 传统的单体架构
1.1.1 什么是单体架构
一个归档包包含了应用所有功能的程序,我们通常称之为单体应用。也称之
为单体应用架构。这是一种比较传统的架构风格。
1.1.2 单体架构优点
便于开发:只需借助 IDE 的开发,调试功能即可完成
易于测试:只需要通过单元测试或浏览器即可完成测试
易于部署:打包成单一可执行 jar 或者 war 包,完成 jar 或者 war 部署即可
2 SOA架构
2.1 什么是SOA架构
就是面向服务的架构。这里的服务可以理 解为 service 层业务服务。将系统拆
分为不同的服务单元,通过网络协议服务单元之间进行 通信。服务单元完成一
个特定功能(如:验证、支付、登录等等),通过服务单元之间的集成 组成完整的
应用程序。
SOA 架构中由两个重要的角色: 服务提供者(Provider)和服务使用者
3 什么是RPC调用
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机
程序上请求 服务,而不需要了解底层网络技术的协议。请求程序就是一个客户机,
而服务提供程序就是 一个服务器。
4 RPC的实现方式
RMI:Java 提供的基于 java 平台 RPC 远程调用技术,服务消费者和服务提供者是
java 平台。
WEBSERVICE:通过 Http 协议,请求发送 xml 和响应 xml 的 RPC 远程调用技术,最大
的特征使用 xml 进行数据交互,可以实现跨平台调用。
HttpClient:Http 客户端工具,Java 程序通过 HttpClient 发送 Http 协议的请求,直接
获得远程 资源。
1 RMI介绍
RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能
够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可
以用此方法调用的任何对象 必须实现该远程接口。
1.2 服务提供者实现
1.2.1 创建 rmi-provider
1.2.2 创建UserService接口
1.2.3 创建UserServiceImpl是实现类
1.2.4 发布远程服务
1.3 服务消费者实现
1.3.1 创建rmi-consumer项目
1.3.2 拷贝UserService接口
1.3.3 消费远程服务
2 WebService介绍
Web service 是一个平台独立的,低耦合的 web 的应用程序用于开发分布式的互操
作的应用 程序。Web Service 技术, 能使得运行在不同机器上的不同应用无须借助
附加的、专门的第 三方软件或硬件, 就可相互交换数据或集成。
3 HttpClient介绍
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java
应用程 序需要直接通过 HTTP 协议来访问网络资源。 HttpClient 是 Apache
Jakarta Common 下的子项目,供高效的、最新的、功能丰富的支持 HTTP 协议的
客户端编程工具包。实现了所有 HTTP 的方法支持 RestFul。
3.1 服务提供者实现
3.1.1 业务需求说明
实现:通过用户系统访问订单系统,获得某个用户的订单信息。
User-sys:服务的消费者
Order-sys:服务的提供者
User-sys 给 order-sys 的 Controller 发送 http 请求
3.1.2 创建order-sys项目
3.1.3 创建Order订单实体类
3.2 创建OrderController
3.3 配置 springmvc.xml
3.4 配置 web.xml
4 服务消费者实现
4.1 创建user-sys项目
4.2 拷贝Order订单实体类
4.3 创建测试类
5 RestTemplate介绍
5.1 业务需求说明
5.2 创建red-sys项目
5.3 拷贝Order订单实体类
5.4 创建RedController类
5.5 配置springmvc.xml
5.6 配置web.xml
1 Ajax跨域介绍
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成
的,是浏览器 对 JavaScript 施加的安全限制。
什么是同源策略: 所谓的同源,指的是域名、协议、端口均相等。
不同源的系统使用 ajax 发送求,会存在跨域的问题:
例如 http://www.abc.com/ 访问 .xyz Domain Names | Join Generation XYZ
域名不一致,存在跨域 http://www.abc.com/ 访问 https://www.abc.com
协议不一致,存在跨域 http://www.abc.com:80/ 访问 http://www.abc.com:81
端口不一致,存在跨域。
2 Ajax跨域问题
2.1 创建ajax-origin项目
2.2 发送Ajax请求
2.3 观察跨域问题
3 ajax跨域解决方案
3.1 服务器段解决 服务端设置 response header 中 Access-Control-Allow-Origin
字段
3.2 前端 JSONP 解决 利用 script 标签,不受同源策略的限制,用户从服务请求数据,服
务器返回一个带有方法和数据 的 js 代码。
4 CORSFilter 解决跨域访问原理
4.1 修改pom文件添加 CORSFilter 依赖
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.5</version>
<scope>runtime</scope>
</dependency>
4.2 web.xml配置CORSFilter
5 JSONP 解决跨域
5.1 原理
在 js 中,我们直接用 XMLHttpRequest 请求不同域上的数据时,是不可以的。
但是,在页面 上引入不同域上的 js 脚本文件却是可以的,jsonp 正是利用这个特
性来实现的。
例如: <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
从不同域的服务器直接请求 js 代码,jsonp 就是通过获得不同域的服务器上的 js
代码(js 代码 中包含一个在本地定义的 js 函数和需要获得数据),来获得不同域
的数据。
5.2 注释 web.xml 中 CORSFilter 配置 添加 fastjson 依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
5.3 修改 OrderController 类
5.4 发送请求
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。