学习内容
今天主要是学习微服务。在微服务架构里面这些服务都是独立部署的,服务是独立开发测试变更。这些服务都有自己的数据,这是微服务架构。
首先新建一个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就属于第二代服务框架,适合混合式开发。上午的学习内容不是很多,下午的时候我们小组的项目已经开始整合了,整合了之后再完成界面的美化,各种页面之间的跳转等功能。小组成员特别热心特别积极,学习氛围很好。