SpringCloud2
第四章 SpringCloud-Hello案例开发-电影服务
4.1 电影服务
(jar工程,提供查询电影功能)cloud-provider-movie
改一下:
1.两个pom有很多没用的东西,首先我们不打jar包所以两个build删掉
2.两个properties一样,给他复制到父工程pom文件里
3.还有dependencyManagement
移过去之后,两个子工程对应的就可以删了,只留正儿八经要依赖的jar包就行了
注意
完成之后Hello里面打包方式就不能是jar了,要改成pom
这是Hello的pom的变化1——》
接着把Hello的jav粘到子工程里,movie改变前
movie的pom改动后
接着改动server的pom
改完之后 Hello的pom就可以统一管理两个工程的版本了
接下来为了后边的熔断器,改动一下版本(因为版本太高,图标可能加载不出来)
上图是改之前
看看为什么movie要导入web
因为eureka.server自带web,movie是注册中心的客户端,不带web需要自己导
4.1.1 引入eureka-Discovery、web模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
创建工程已经引入过了
4.1.2 创建Movie实体类,增加id,movieName属性
不能建到movie里,太笨了因为牵扯远程调用,后边user也要用,所以新建个maven
这个maven要不要父工程都不影响
接下来java下写类
4.1.3 创建MovieDao
因为没连数据库,所以硬写就拉倒了哈
dao
package com.wsk.movie.dao;
import com.wsk.bean.Movie;
import org.springframework.stereotype.Repository;
service
package com.wsk.movie.service;
import com.wsk.bean.Movie;
import com.wsk.movie.dao.MovieDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
controller
package com.wsk.movie.controller;
import com.wsk.bean.Movie;
import com.wsk.movie.service.MovieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
然后
4.1.4 编写application.yml
spring
测试的话要加入注解movie入口处,加不加都行,默认开启
启动顺序,先有注册中心再启动服务
让导入测试包的话,删了会自动导入 ,俩工程测试都重新导一下因为改版本了
4.1 电影服务接着
多增加几个movie Zone不用改,方便看结果
接着
刷新浏览器,62/63也都能访问
只不过有红字很恶心是吧?
红字其实就是eureka的自我保护机制,一会儿写
4.1 现在看看movie服务好使不好使
第五章 SpringCloud-Hello案例开发-用户服务
5.1 用户服务
(jar工程,提供查询用户,买电影票功能)cloud-consumer-user
5.1.1 引入eureka-Discovery、web模块
新建一个普通的maven工程,父工程为 SpringCloud-Hello,因为用到的都跟movie一样所以把movie的dependencies粘过来就好了 ——》也是继承了common-bean
5.1.2 创建User实体类,增加id,userName属性
在common-bean里新建User实体类
UserController
UserService
UserDao
User
public class User { private int id; private String userName; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
application.yml
spring: application: name: cloud-consumer-user server: port: 9000 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-address: true #注册中心保存我的ip
看效果:负载均衡准备工作完成