使用jsonp技术,前端的ajax需要把方法的datatype写成jsonp,并且在controller类中返回值类型是jsonPObject,这个是特有的java的api,用于jsonp技术。
分布式项目可以使用dubbo框架。
第一步:导入dubbo依赖
<!--引入dubbo配置 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
第二步:
编辑服务provider,在公共模块创建dubbo接口
在jt-common中创建:
//定义dubbo自己的接口
public interface DubboUserService {
}
第三步:在相关模块中去创建接口实现类。
package com.jt.service;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dubbo.config.annotation.Service;
import com.jt.mapper.UserMapper;
//这是dubbo的实现类
@Service
public class DubboUserServiceImpl implements DubboUserService {
@Autowired
private UserMapper userMapper;
}
这里的注解是com.alibaba.dubbo.config.annotation.Service;是dubbo的注解。
第四步:在接口实现类中的项目里面修改application.yml文件
dubbo:
scan:
basePackages: com.jt
application:
name: provider-user
registry:
address: zookeeper://192.168.126.129:2181?
backup=192.168.126.129:2182,192.168.126.129:2183
protocol:
name: dubbo
port: 20880
表示这个是一个provider
第五步:编辑服务消费者
UserController:说明:编辑jt-web的UserController实现接口的注入.
import com.alibaba.dubbo.config.annotation.Reference;
import com.jt.service.DubboUserService;
@Controller
@RequestMapping("/user")
public class UserController {
//引入dubbo配置
@Reference(check=false) //消费者启动时暂时不检查服务是否有提供者.
private DubboUserService userService;
....
}
@Reference(check=false) //消费者启动时暂时不检查服务是否有提供者.启动接口,需要专门的dubbo注解
import com.alibaba.dubbo.config.annotation.Reference;
import com.jt.service.DubboUserService;
第六步:编辑消费者的YML配置,说明:配置jt-web的application.yml文件
dubbo:
scan:
basePackages: com.jt
application:
name: consumer-user
registry:
address: zookeeper://192.168.126.129:2181?
backup=192.168.126.129:2182,192.168.126.129:2183