8.3zr实习日记

学习内容

今天主要是学习微服务。在微服务架构里面这些服务都是独立部署的,服务是独立开发测试变更。这些服务都有自己的数据,这是微服务架构。
首先新建一个spring boot项目取名为springcloud,在该项目下创建子项目zr-consumer,zr-privoder,zr-eureka

zr-privoder

provider负责与数据库进行交互,实现数据持久化,并给consumer提供服务

application.yml文件

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/tnew1?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
  application:
    name: zr-provider
mybatis:
  type-aliases-package: com.zr.pojo
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

建立包controller、dao、pojo、service,并分别新建UserController.java文件、dao层下新建UserMapper接口、pojo层新建实体类User,service层新建文件按UserService.java文件.
代码实现:UserController.java:

@Controller
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;
    @ResponseBody
    @RequestMapping("{id}")
    public User findUser(@PathVariable("id") Long id){
        User user = userService.findUserById(id);
        return user;
    }
}

UserService.java:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public User findUserById(Long id){
        return userMapper.selectByPrimaryKey(id);
    }
    
}

zr-consumer

consumer与前端交互,通过与Eureka同源的feign组件调用provider提供的服务实现业务逻辑,给前端响应。
application.yml文件:

server:
  port: 8084
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka
spring:
  application:
    name: zr-consumer

consumer项目下新建包client、controller、pojo,client包下新建文件UserClient.java,pojo层新建实体类User,controller层新建UserController.java文件
代码实现:
UserController.java:

@RestController
@RequestMapping("consumer/user")
public class UserController { 
    @Autowired
    private UserClient userClient;
    @RequestMapping
    public User queryById(@RequestParam("id") Long id){
       User user=userClient.findUser(id);
        return user;
    }
}

UserClient.java文件:

@FeignClient(value = "zr-provider")
public interface UserClient {
    @RequestMapping("user/{id}")
    User findUser(@PathVariable("id") Long id);

}

zr-eureka

eureka负责注册provider和consumer的服务信息。
application.yml文件:

server:
  port: 10086
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka
spring:
  application:
    name: zr-eureka

总结

微服务也是第一次接触,但是理解起来不是很难,用起来也不是很难。老师在讲解微服务之前还和我们讲了服务框架的演变,从第一代到第二代再到第三代,组件越来越丰富功能越来越齐全,更新迭代的速度也越来越快。spring cloud就属于第二代服务框架,适合混合式开发。上午的学习内容不是很多,下午的时候我们小组的项目已经开始整合了,整合了之后再完成界面的美化,各种页面之间的跳转等功能。小组成员特别热心特别积极,学习氛围很好。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页