注册中心的创建
1、建立注册中心(EurekaServer),需要引入依赖。
Spring Cloud Discovery –> Eureka Server
2、在项目src–>main–>java–>com.XXX.XXXXX–>找到EurekaServerApplication(项目名字+Application)
中的类方法上加@EnableEurekaServer注解。
3、找到项目中的application.properties,在其中加入以下语句:
#端口号设置
server.port=8080
#注册中心服务记录地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
#记录注册信息(记名字)
eureka.client.fetch-registry=false
#服务注册到注册中心
eureka.client.register-with-eureka=false#端口号设置
server.port=8080
#注册中心服务记录地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
#记录注册信息(记名字)
eureka.client.fetch-registry=false
#服务注册到注册中心
eureka.client.register-with-eureka=false
注册中心创建完毕
生产者的建立
1、建立生产者(producer),需要引入依赖。
Web–> Spring Web
SQL–> JDBC API , MyBatis Framework , MySQL Driver
Spring Cloud Discovery–> Eureka Discovery Client
2、在项目src–>main–>java–>com.XXX.XXXXX–>找到MyproviderApplication(项目名字+Application)
在类方法上加@EnableEurekaClient注解
3、找到项目中的application.properties,在其中加入以下语句:
#设置端口号
server.port=8081
# 数据库连接属性
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/test(数据库名字)?serverTimezone=UTC(时区)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 给实体类起别名
mybatis.type-aliases-package=com.example.demo.bean
# 扫描mapper文件
mybatis.mapper-locations=classpath:mapper/*.xml
#给项目起名字
spring.application.name=myprovider
#注册项目
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
PS:如需一个对象为参数则需要@RequestBody注解,如果是其他数据类型则需要添加@RequestParam(“XXX”)注解,
PS:XXX就是参数的名字
消费者的建立
1、建立消费者(consumer),需要引入依赖。
Web–> Spring Web
Template Engines–> Thymeleaf
Spring Cloud Discovery–> Eureka Discovery Client
Spring Cloud Routing–>OpenFeign
2、在项目src–>main–>java–>com.XXX.XXXXX–>找到MyconsumerApplication(项目名字+Application)
在类方法上加@EnableEurekaClient,@EnableFeignClients这两个注解
3、找到项目中的application.properties,在其中加入以下语句:
#设置端口号
server.port=8082
#给项目起名字
spring.application.name=myconsumer
#注册项目
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
4、在消费者中建立一个文件夹(名字是Feign)在文件夹中建立类(名字为XXXFeign),
在其中编写远程调用相关配置
@FeignClient("myprovider")
public interface TestFeign {
@RequestMapping("index")
public String a(@RequestParam("uname") String uname);
}
5、在Controllet中调用Feign
@Controller
public class UserController {
@Autowired
Ufeign ufeign;
@RequestMapping("ajaxsel")
@ResponseBody
public List<User> l(){
List<User> list=ufeign.a();
return list;
}
最后注意:
其中因为会遇到实体类的问题,所以需要创建公共实体类。
步骤为:
1、创建一个Maven项目,在Create from archetpe复选框前勾选上。
2、在下面的列表中找到org.apache.maven.archetypes:maven-archetype-quickstart,选中。然后点击next
3、接下来分别输入类型(groupId),名字(artifactId),版本号根据自己的需求决定是否改变。点击下一步即可创建公共实体类
4、之后会让你确认信息,点击下一步即可创建公共实体类。
5、在pom.xml中只保留以下信息
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>bean</groupId>
<artifactId>module</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
6、在src–>main–>java–>bean创建公用的实体类。
7、删除其中的test文件夹
8、在右边找到Maven,点击展开后,找到项目名下面的Lifecycle展开后,
找到下面的install,双击。当出现以下内容时即创建成功。
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.369 s
[INFO] Finished at: 2019-10-26T16:57:15+08:00
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0