diff --git a/lab-42/lab-42-demo02/pom.xml b/lab-42/lab-42-demo02/pom.xml new file mode 100644 index 000000000..065629430 --- /dev/null +++ b/lab-42/lab-42-demo02/pom.xml @@ -0,0 +1,46 @@ + + + + org.springframework.boot + spring-boot-starter-parent + 2.2.2.RELEASE + + + 4.0.0 + + lab-42-demo02 + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + mysql + mysql-connector-java + 5.1.46 + + + + + org.springframework.boot + spring-boot-starter-test + test + + + com.h2database + h2 + test + + + + diff --git a/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/Application.java b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/Application.java new file mode 100644 index 000000000..b96d4d52a --- /dev/null +++ b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/Application.java @@ -0,0 +1,13 @@ +package cn.iocoder.springboot.lab23.testdemo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/controller/UserController.java b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/controller/UserController.java new file mode 100644 index 000000000..db349d20c --- /dev/null +++ b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/controller/UserController.java @@ -0,0 +1,33 @@ +package cn.iocoder.springboot.lab23.testdemo.controller; + +import cn.iocoder.springboot.lab23.testdemo.dataobject.UserDO; +import cn.iocoder.springboot.lab23.testdemo.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * 用户 Controller + */ +@RestController +@RequestMapping("/user") +public class UserController { + + @Autowired + private UserService userService; + + /** + * 获得指定用户编号的用户 + * + * @param id 用户编号 + * @return 用户 + */ + @GetMapping("/get") // URL 修改成 /get + public UserDO get(@RequestParam("id") Integer id) { + // 查询并返回用户 + return userService.get(id); + } + +} diff --git a/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/dao/UserDao.java b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/dao/UserDao.java new file mode 100644 index 000000000..7134114d1 --- /dev/null +++ b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/dao/UserDao.java @@ -0,0 +1,21 @@ +package cn.iocoder.springboot.lab23.testdemo.dao; + +import cn.iocoder.springboot.lab23.testdemo.dataobject.UserDO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +@Repository +public class UserDao { + + @Autowired + private JdbcTemplate template; + + public UserDO selectById(Integer id) { + return template.queryForObject("SELECT id, username, password FROM t_user WHERE id = ?", + new BeanPropertyRowMapper<>(UserDO.class), // 结果转换成对应的对象 + id); + } + +} diff --git a/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/dataobject/UserDO.java b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/dataobject/UserDO.java new file mode 100644 index 000000000..d22dbf842 --- /dev/null +++ b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/dataobject/UserDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.springboot.lab23.testdemo.dataobject; + +/** + * 用户 DO + */ +public class UserDO { + + /** + * 用户编号 + */ + private Integer id; + /** + * 账号 + */ + private String username; + /** + * 密码(明文) + * + * ps:生产环境下,千万不要明文噢 + */ + private String password; + + public Integer getId() { + return id; + } + + public UserDO setId(Integer id) { + this.id = id; + return this; + } + + public String getUsername() { + return username; + } + + public UserDO setUsername(String username) { + this.username = username; + return this; + } + + public String getPassword() { + return password; + } + + public UserDO setPassword(String password) { + this.password = password; + return this; + } + +} diff --git a/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/service/UserService.java b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/service/UserService.java new file mode 100644 index 000000000..19416253e --- /dev/null +++ b/lab-42/lab-42-demo02/src/main/java/cn/iocoder/springboot/lab23/testdemo/service/UserService.java @@ -0,0 +1,29 @@ +package cn.iocoder.springboot.lab23.testdemo.service; + +import cn.iocoder.springboot.lab23.testdemo.dao.UserDao; +import cn.iocoder.springboot.lab23.testdemo.dataobject.UserDO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + + @Autowired + private UserDao userDao; + + public UserDO get(Integer id) { + return userDao.selectById(id); + } + + public boolean exists(String username) { + return true; + } + + public Integer add(String username, String password) { + if (exists(username)) { + return null; + } + return 1; + } + +} diff --git a/lab-42/lab-42-demo02/src/main/resources/application.yaml b/lab-42/lab-42-demo02/src/main/resources/application.yaml new file mode 100644 index 000000000..0af15034a --- /dev/null +++ b/lab-42/lab-42-demo02/src/main/resources/application.yaml @@ -0,0 +1,7 @@ +spring: + # datasource 数据源配置内容 + datasource: + url: jdbc:mysql://127.0.0.1:3306/lab-39-mysql?useSSL=false&useUnicode=true&characterEncoding=UTF-8 + driver-class-name: com.mysql.jdbc.Driver + username: root + password: diff --git a/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/controller/UserControllerTest.java b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/controller/UserControllerTest.java new file mode 100644 index 000000000..f9eb0fc05 --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/controller/UserControllerTest.java @@ -0,0 +1,58 @@ +package cn.iocoder.springboot.lab23.testdemo.controller; + +import cn.iocoder.springboot.lab23.testdemo.dataobject.UserDO; +import cn.iocoder.springboot.lab23.testdemo.service.UserService; +import org.hamcrest.core.IsEqual; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; + +/** + * UserController 单元测试 + */ +@RunWith(SpringRunner.class) +@SpringBootTest +@AutoConfigureMockMvc +public class UserControllerTest { + + @Autowired + private MockMvc mvc; + + @MockBean + private UserService userService; + + @Test + public void testGet() throws Exception { + // Mock UserService 的 get 方法 + Mockito.when(userService.get(1)).thenReturn( + new UserDO().setId(1).setUsername("username:1").setPassword("password:1")); + + // 查询用户 + ResultActions resultActions = mvc.perform(MockMvcRequestBuilders.get("/user/get?id=1")); + + // 校验响应状态码 + resultActions.andExpect(MockMvcResultMatchers.status().isOk()); // 响应状态码 200 + + // 校验响应内容方式一:直接全部匹配 + resultActions.andExpect(MockMvcResultMatchers.content().json("{\n" + + " \"id\": 1,\n" + + " \"username\": \"username:1\",\n" + + " \"password\": \"password:1\"\n" + + "}", true)); // 响应结果 + + // 校验响应内容方式二:逐个字段匹配 + resultActions.andExpect(MockMvcResultMatchers.jsonPath("id", IsEqual.equalTo(1))); + resultActions.andExpect(MockMvcResultMatchers.jsonPath("username", IsEqual.equalTo("username:1"))); + resultActions.andExpect(MockMvcResultMatchers.jsonPath("password", IsEqual.equalTo("password:1"))); + } + +} diff --git a/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/dao/UserDaoTest.java b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/dao/UserDaoTest.java new file mode 100644 index 000000000..081da10e6 --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/dao/UserDaoTest.java @@ -0,0 +1,33 @@ +package cn.iocoder.springboot.lab23.testdemo.dao; + +import cn.iocoder.springboot.lab23.testdemo.dataobject.UserDO; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class UserDaoTest { + + @Autowired + private UserDao userDao; + + @Test + @Sql(scripts = "/sql/create_tables.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(statements = "INSERT INTO `t_user`(`id`, `username`, `password`) VALUES (1, 'username:1', 'password:1');", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void testSelectById() { + // 查询用户 + UserDO user = userDao.selectById(1); + + // 校验结果 + Assert.assertEquals("编号不匹配", 1, (int) user.getId()); + Assert.assertEquals("用户名不匹配", "username:1", user.getUsername()); + Assert.assertEquals("密码不匹配", "password:1", user.getPassword()); + } + +} diff --git a/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/package-info.java b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/package-info.java new file mode 100644 index 000000000..ae8ba9d6c --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.springboot.lab23.testdemo; diff --git a/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/service/UserServiceTest.java b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/service/UserServiceTest.java new file mode 100644 index 000000000..25b9d120a --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/service/UserServiceTest.java @@ -0,0 +1,39 @@ +package cn.iocoder.springboot.lab23.testdemo.service; + +import cn.iocoder.springboot.lab23.testdemo.dao.UserDao; +import cn.iocoder.springboot.lab23.testdemo.dataobject.UserDO; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class UserServiceTest { + + @MockBean + private UserDao userDao; + + @Autowired + private UserService userService; + + @Test + public void testGet() { + // Mock UserDao 的 selectById 方法 + Mockito.when(userDao.selectById(1)).thenReturn( + new UserDO().setId(1).setUsername("username:1").setPassword("password:1")); + + // 查询用户 + UserDO user = userService.get(1); + + // 校验结果 + Assert.assertEquals("编号不匹配", 1, (int) user.getId()); + Assert.assertEquals("用户名不匹配", "username:1", user.getUsername()); + Assert.assertEquals("密码不匹配", "password:1", user.getPassword()); + } + +} diff --git a/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/service/UserServiceTest2.java b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/service/UserServiceTest2.java new file mode 100644 index 000000000..d1f7f62b8 --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/java/cn/iocoder/springboot/lab23/testdemo/service/UserServiceTest2.java @@ -0,0 +1,37 @@ +package cn.iocoder.springboot.lab23.testdemo.service; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class UserServiceTest2 { + + @SpyBean + private UserService userService; + + @Test + public void testAddSuccess() { + System.out.println("testAddSuccess"); + // Mock UserService 的 exists 方法 + Mockito.when(userService.exists("username")).thenReturn( + false); + + Assert.assertNotNull("注册返回为 null,注册失败", + userService.add("username", "password")); + } + + @Test + public void testAddFailure() { + System.out.println("testAddFailure"); + + Assert.assertNull("注册返回为 null,注册失败", + userService.add("username", "password")); + } + +} diff --git a/lab-42/lab-42-demo02/src/test/resources/application.yaml b/lab-42/lab-42-demo02/src/test/resources/application.yaml new file mode 100644 index 000000000..382674c46 --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/resources/application.yaml @@ -0,0 +1,7 @@ +spring: + # datasource 数据源配置内容 + datasource: + url: jdbc:h2:mem:testdb + driver-class-name: org.h2.Driver + username: sa + password: diff --git a/lab-42/lab-42-demo02/src/test/resources/sql/clean.sql b/lab-42/lab-42-demo02/src/test/resources/sql/clean.sql new file mode 100644 index 000000000..be125207d --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/resources/sql/clean.sql @@ -0,0 +1 @@ +DROP TABLE `t_user` diff --git a/lab-42/lab-42-demo02/src/test/resources/sql/create_tables.sql b/lab-42/lab-42-demo02/src/test/resources/sql/create_tables.sql new file mode 100644 index 000000000..82c92d7e2 --- /dev/null +++ b/lab-42/lab-42-demo02/src/test/resources/sql/create_tables.sql @@ -0,0 +1,5 @@ +CREATE TABLE `t_user` ( + `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号', + `username` VARCHAR(64) NOT NULL COMMENT '账号', + `password` VARCHAR(64) NOT NULL COMMENT '密码' +); diff --git a/lab-42/pom.xml b/lab-42/pom.xml index 3518bd6b5..5501dc837 100644 --- a/lab-42/pom.xml +++ b/lab-42/pom.xml @@ -13,6 +13,7 @@ pom lab-42-demo01 + lab-42-demo02 diff --git a/lab-58/lab-58-feign-demo/pom.xml b/lab-58/lab-58-feign-demo/pom.xml new file mode 100644 index 000000000..e4b222f73 --- /dev/null +++ b/lab-58/lab-58-feign-demo/pom.xml @@ -0,0 +1,52 @@ + + + + lab-58 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-58-feign-demo + + + 1.8 + 1.8 + 2.2.4.RELEASE + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + io.github.openfeign + feign-core + 11.0 + + + io.github.openfeign + feign-gson + 11.0 + + + + diff --git a/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/FeignDemoApplication.java b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/FeignDemoApplication.java new file mode 100644 index 000000000..99ab6cd1a --- /dev/null +++ b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/FeignDemoApplication.java @@ -0,0 +1,13 @@ +package cn.iocoder.springboot.lab58.feigndemo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class FeignDemoApplication { + + public static void main(String[] args) { + SpringApplication.run(FeignDemoApplication.class, args); + } + +} diff --git a/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/config/FeignConfig.java b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/config/FeignConfig.java new file mode 100644 index 000000000..f0f261f72 --- /dev/null +++ b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/config/FeignConfig.java @@ -0,0 +1,19 @@ +package cn.iocoder.springboot.lab58.feigndemo.config; + +import cn.iocoder.springboot.lab58.feigndemo.feign.UserServiceFeignClient; +import feign.Feign; +import feign.gson.GsonDecoder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class FeignConfig { + + @Bean + public UserServiceFeignClient userServiceFeignClient() { + return Feign.builder() + .decoder(new GsonDecoder()) + .target(UserServiceFeignClient.class, "http://127.0.0.1:18080"); // 目标地址 + } + +} diff --git a/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/controller/DemoController.java b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/controller/DemoController.java new file mode 100644 index 000000000..61a5f4d1b --- /dev/null +++ b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/controller/DemoController.java @@ -0,0 +1,41 @@ +package cn.iocoder.springboot.lab58.feigndemo.controller; + +import cn.iocoder.springboot.lab58.feigndemo.feign.UserServiceFeignClient; +import cn.iocoder.springboot.lab58.feigndemo.feign.response.UserResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/demo") +public class DemoController { + + @Autowired + private UserServiceFeignClient userServiceFeignClient; + + @GetMapping("/test01") + public UserResponse test01() { + return userServiceFeignClient.get(1); +// System.out.println("编号:" + user.getId()); +// System.out.println("昵称:" + user.getName()); +// System.out.println("性别:" + user.getGender()); + } + + @GetMapping("/test02A") + public List test02A() { + return userServiceFeignClient.list("你猜", 1); + } + + @GetMapping("/test02B") + public List test02B() { + Map queryMap = new HashMap<>(); + queryMap.put("name", "昵称"); + return userServiceFeignClient.list(queryMap); + } + +} diff --git a/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/feign/UserServiceFeignClient.java b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/feign/UserServiceFeignClient.java new file mode 100644 index 000000000..687e4ead4 --- /dev/null +++ b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/feign/UserServiceFeignClient.java @@ -0,0 +1,24 @@ +package cn.iocoder.springboot.lab58.feigndemo.feign; + +import cn.iocoder.springboot.lab58.feigndemo.feign.response.UserResponse; +import feign.Param; +import feign.QueryMap; +import feign.RequestLine; + +import java.util.List; +import java.util.Map; + +public interface UserServiceFeignClient { + + // 获得用户详情 + @RequestLine("GET /user/get?id={id}") + UserResponse get(@Param("id") Integer id); + + @RequestLine("GET /user/list?name={name}&gender={gender}") + List list(@Param("name") String name, + @Param("gender") Integer gender); + + @RequestLine("GET /user/list") + List list(@QueryMap Map queryMap); + +} diff --git a/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/feign/response/UserResponse.java b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/feign/response/UserResponse.java new file mode 100644 index 000000000..8d47e8dd5 --- /dev/null +++ b/lab-58/lab-58-feign-demo/src/main/java/cn/iocoder/springboot/lab58/feigndemo/feign/response/UserResponse.java @@ -0,0 +1,36 @@ +package cn.iocoder.springboot.lab58.feigndemo.feign.response; + +public class UserResponse { + + private Integer id; + private String name; + private Integer gender; + + public Integer getId() { + return id; + } + + public UserResponse setId(Integer id) { + this.id = id; + return this; + } + + public String getName() { + return name; + } + + public UserResponse setName(String name) { + this.name = name; + return this; + } + + public Integer getGender() { + return gender; + } + + public UserResponse setGender(Integer gender) { + this.gender = gender; + return this; + } + +} diff --git a/lab-58/lab-58-user-service/src/main/java/cn/iocoder/springboot/lab58/userservice/controller/UserController.java b/lab-58/lab-58-user-service/src/main/java/cn/iocoder/springboot/lab58/userservice/controller/UserController.java index cb27e25c8..7b61783f7 100644 --- a/lab-58/lab-58-user-service/src/main/java/cn/iocoder/springboot/lab58/userservice/controller/UserController.java +++ b/lab-58/lab-58-user-service/src/main/java/cn/iocoder/springboot/lab58/userservice/controller/UserController.java @@ -20,12 +20,12 @@ public UserResponse get(@RequestParam("id") Integer id) { } @GetMapping("/list") - public List list(@RequestParam("name") String name, - @RequestParam("gender") Integer gender) { + public List list(@RequestParam(value = "name", required = false) String name, + @RequestParam(value = "gender", required = false) Integer gender) { List users = new ArrayList<>(); for (int id = 1; id <= 3; id++) { users.add(new UserResponse().setId(id) - .setName(name).setGender(gender)); + .setName(name + "_" + id).setGender(gender)); } return users; } diff --git a/lab-58/pom.xml b/lab-58/pom.xml index fcd0d796a..a194fa03b 100644 --- a/lab-58/pom.xml +++ b/lab-58/pom.xml @@ -14,6 +14,7 @@ lab-58-user-service + lab-58-feign-demo diff --git a/pom.xml b/pom.xml index 12ce18eec..63969ff06 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ - + lab-42