创建子项目UserService,并将服务注册到Eureka
UserService子项目作为用户信息的服务提供方,通过本项目,可以实现对基于Docker运行的mysql数据库表的读取。
1、在父项目上点击鼠标右键选择new→Module:
过程同上,略过不表,子项目的文件结构如下:
2、在pom.xml中引入依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
3、在application.yml中配置eureka地址:
server:port: 8081 #服务端口spring:application:name: userservice #服务名称datasource:url: jdbc:mysql://localhost:3306/mysql?useSSL=falseusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Drivereureka:client:service-url: #eureka服务地址defaultZone: http://127.0.0.1:10086/eureka
小结:服务注册只需要以下两步:
▪引入eureka-client依赖
▪在application.yml中配置eureka地址
4、编写UserController类:
package cn.it32.user.web;import cn.it32.user.config.PatternProperties;
import cn.it32.user.pojo.User;
import cn.it32.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;/*** Created by */
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate PatternProperties properties;@GetMapping("prop")public PatternProperties properties(){return properties;}@GetMapping("now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));}/*** 路径: /user/110** @param id 用户id* @return 用户*/@GetMapping("/{id}")public User queryById(@PathVariable("id") Long id,@RequestHeader(value = "Truth", required = false) String truth) {System.out.println("truth: " + truth);return userService.queryById(id);}
}
其中,服务请求路径为"/user",后带变量id。
5、运行,并访问数据库:
http://localhost:8081/user/1
运行结果如下:
可以看到,应用成功访问到数据库表。