From 6c3b4925cf433ffb705f54456cd9116f9fdb35c5 Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Mon, 14 Aug 2023 22:45:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=89=88=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 33 +++++++++ book-service/pom.xml | 37 ++++++++++ .../main/java/com/test/BookApplication.java | 19 ++++++ .../com/test/controller/BookController.java | 28 ++++++++ .../main/java/com/test/mapper/BookMapper.java | 20 ++++++ .../java/com/test/service/BookService.java | 14 ++++ .../test/service/impl/BookServiceImpl.java | 27 ++++++++ .../src/main/resources/application.yml | 8 +++ borrow-service/pom.xml | 41 ++++++++++++ .../main/java/com/test/BorrowApplication.java | 18 +++++ .../com/test/controller/BorrowController.java | 29 ++++++++ .../com/test/entity/UserBorrowDetail.java | 20 ++++++ .../java/com/test/mapper/BorrowMapper.java | 26 +++++++ .../java/com/test/service/BorrowService.java | 16 +++++ .../test/service/impl/BorrowServiceImpl.java | 43 ++++++++++++ .../src/main/resources/application.yml | 8 +++ commons/pom.xml | 21 ++++++ .../src/main/java/com/test/entity/Book.java | 17 +++++ .../src/main/java/com/test/entity/Borrow.java | 17 +++++ .../src/main/java/com/test/entity/User.java | 31 +++++++++ pom.xml | 67 +++++++++++++++++++ user-service/pom.xml | 35 ++++++++++ .../main/java/com/test/UserApplication.java | 18 +++++ .../com/test/controller/UserController.java | 29 ++++++++ .../main/java/com/test/mapper/UserMapper.java | 18 +++++ .../java/com/test/service/UserService.java | 14 ++++ .../test/service/impl/UserServiceImpl.java | 27 ++++++++ .../src/main/resources/application.yml | 8 +++ 28 files changed, 689 insertions(+) create mode 100644 .gitignore create mode 100644 book-service/pom.xml create mode 100644 book-service/src/main/java/com/test/BookApplication.java create mode 100644 book-service/src/main/java/com/test/controller/BookController.java create mode 100644 book-service/src/main/java/com/test/mapper/BookMapper.java create mode 100644 book-service/src/main/java/com/test/service/BookService.java create mode 100644 book-service/src/main/java/com/test/service/impl/BookServiceImpl.java create mode 100644 book-service/src/main/resources/application.yml create mode 100644 borrow-service/pom.xml create mode 100644 borrow-service/src/main/java/com/test/BorrowApplication.java create mode 100644 borrow-service/src/main/java/com/test/controller/BorrowController.java create mode 100644 borrow-service/src/main/java/com/test/entity/UserBorrowDetail.java create mode 100644 borrow-service/src/main/java/com/test/mapper/BorrowMapper.java create mode 100644 borrow-service/src/main/java/com/test/service/BorrowService.java create mode 100644 borrow-service/src/main/java/com/test/service/impl/BorrowServiceImpl.java create mode 100644 borrow-service/src/main/resources/application.yml create mode 100644 commons/pom.xml create mode 100644 commons/src/main/java/com/test/entity/Book.java create mode 100644 commons/src/main/java/com/test/entity/Borrow.java create mode 100644 commons/src/main/java/com/test/entity/User.java create mode 100644 pom.xml create mode 100644 user-service/pom.xml create mode 100644 user-service/src/main/java/com/test/UserApplication.java create mode 100644 user-service/src/main/java/com/test/controller/UserController.java create mode 100644 user-service/src/main/java/com/test/mapper/UserMapper.java create mode 100644 user-service/src/main/java/com/test/service/UserService.java create mode 100644 user-service/src/main/java/com/test/service/impl/UserServiceImpl.java create mode 100644 user-service/src/main/resources/application.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/book-service/pom.xml b/book-service/pom.xml new file mode 100644 index 0000000..bbf3efd --- /dev/null +++ b/book-service/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + com.example + SpringCloudStudy + 0.0.1-SNAPSHOT + + + org.example + book-service + + + 8 + 8 + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + org.example + commons + 0.0.1-SNAPSHOT + + + + diff --git a/book-service/src/main/java/com/test/BookApplication.java b/book-service/src/main/java/com/test/BookApplication.java new file mode 100644 index 0000000..7c25a8d --- /dev/null +++ b/book-service/src/main/java/com/test/BookApplication.java @@ -0,0 +1,19 @@ +package com.test; + +import com.apple.eawt.Application; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * ClassName: BookApplication + * Package: com.test + * + * @author yovinchen + * @Create 2023/8/14 16:23 + */ +@SpringBootApplication +public class BookApplication { + public static void main(String[] args) { + SpringApplication.run(BookApplication.class,args); + } +} diff --git a/book-service/src/main/java/com/test/controller/BookController.java b/book-service/src/main/java/com/test/controller/BookController.java new file mode 100644 index 0000000..db4d32b --- /dev/null +++ b/book-service/src/main/java/com/test/controller/BookController.java @@ -0,0 +1,28 @@ +package com.test.controller; + +import com.test.service.BookService; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.awt.print.Book; + +/** + * ClassName: BookController + * Package: com.test.controller + * + * @author yovinchen + * @Create 2023/8/14 17:11 + */ +@RestController +public class BookController { + + @Resource + BookService service; + + @RequestMapping("/book/{bid}") + Book findBookById(@PathVariable("bid") int bid){ + return service.getBookById(bid); + } +} diff --git a/book-service/src/main/java/com/test/mapper/BookMapper.java b/book-service/src/main/java/com/test/mapper/BookMapper.java new file mode 100644 index 0000000..977705a --- /dev/null +++ b/book-service/src/main/java/com/test/mapper/BookMapper.java @@ -0,0 +1,20 @@ +package com.test.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.awt.print.Book; + +/** + * ClassName: BookMapper + * Package: com.test.mapper + * + * @author yovinchen + * @Create 2023/8/14 17:02 + */ +@Mapper +public interface BookMapper { + + @Select("select * from DB_BOOK where bid = #{bid}") + Book getBookById(int bid); +} diff --git a/book-service/src/main/java/com/test/service/BookService.java b/book-service/src/main/java/com/test/service/BookService.java new file mode 100644 index 0000000..0fc33fb --- /dev/null +++ b/book-service/src/main/java/com/test/service/BookService.java @@ -0,0 +1,14 @@ +package com.test.service; + +import java.awt.print.Book; + +/** + * ClassName: BookService + * Package: com.test.service + * + * @author yovinchen + * @Create 2023/8/14 17:03 + */ +public interface BookService { + Book getBookById(int bid); +} diff --git a/book-service/src/main/java/com/test/service/impl/BookServiceImpl.java b/book-service/src/main/java/com/test/service/impl/BookServiceImpl.java new file mode 100644 index 0000000..9a98617 --- /dev/null +++ b/book-service/src/main/java/com/test/service/impl/BookServiceImpl.java @@ -0,0 +1,27 @@ +package com.test.service.impl; + +import com.test.mapper.BookMapper; +import com.test.service.BookService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.awt.print.Book; + +/** + * ClassName: BookServiceImpl + * Package: com.test.service.impl + * + * @author yovinchen + * @Create 2023/8/14 17:09 + */ +@Service +public class BookServiceImpl implements BookService { + + @Resource + BookMapper mapper; + + @Override + public Book getBookById(int bid) { + return mapper.getBookById(bid); + } +} diff --git a/book-service/src/main/resources/application.yml b/book-service/src/main/resources/application.yml new file mode 100644 index 0000000..fbfd6fd --- /dev/null +++ b/book-service/src/main/resources/application.yml @@ -0,0 +1,8 @@ +server: + port: 8201 +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://43.143.164.194:3306/mac + username: mac + password: mactest diff --git a/borrow-service/pom.xml b/borrow-service/pom.xml new file mode 100644 index 0000000..35810a9 --- /dev/null +++ b/borrow-service/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + com.example + SpringCloudStudy + 0.0.1-SNAPSHOT + + + org.example + borrow-service + + + 8 + 8 + UTF-8 + + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + org.example + commons + 0.0.1-SNAPSHOT + + + org.example + commons + 0.0.1-SNAPSHOT + compile + + + diff --git a/borrow-service/src/main/java/com/test/BorrowApplication.java b/borrow-service/src/main/java/com/test/BorrowApplication.java new file mode 100644 index 0000000..0a93b4d --- /dev/null +++ b/borrow-service/src/main/java/com/test/BorrowApplication.java @@ -0,0 +1,18 @@ +package com.test; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * ClassName: BorrowApplication + * Package: com.test + * + * @author yovinchen + * @Create 2023/8/14 16:25 + */ +@SpringBootApplication +public class BorrowApplication { + public static void main(String[] args) { + SpringApplication.run(BorrowApplication.class, args); + } +} diff --git a/borrow-service/src/main/java/com/test/controller/BorrowController.java b/borrow-service/src/main/java/com/test/controller/BorrowController.java new file mode 100644 index 0000000..eddbfa3 --- /dev/null +++ b/borrow-service/src/main/java/com/test/controller/BorrowController.java @@ -0,0 +1,29 @@ +package com.test.controller; + +import com.test.entity.UserBorrowDetail; +import com.test.service.BorrowService; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +/** + * ClassName: BorrowController + * Package: com.test.controller + * + * @author yovinchen + * @Create 2023/8/14 21:30 + */ +@RestController +public class BorrowController { + + @Resource + BorrowService service; + + @RequestMapping("/borrow/{uid}") + UserBorrowDetail findUserBorrows(@PathVariable("uid") int uid){ + return service.getUserBorrowDetailByUid(uid); + } +} diff --git a/borrow-service/src/main/java/com/test/entity/UserBorrowDetail.java b/borrow-service/src/main/java/com/test/entity/UserBorrowDetail.java new file mode 100644 index 0000000..7454d30 --- /dev/null +++ b/borrow-service/src/main/java/com/test/entity/UserBorrowDetail.java @@ -0,0 +1,20 @@ +package com.test.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * ClassName: com.test.entity.UserBorrowDetail + * Package: PACKAGE_NAME + * + * @author yovinchen + * @Create 2023/8/14 21:22 + */ +@Data +@AllArgsConstructor +public class UserBorrowDetail { + User user; + List bookList; +} diff --git a/borrow-service/src/main/java/com/test/mapper/BorrowMapper.java b/borrow-service/src/main/java/com/test/mapper/BorrowMapper.java new file mode 100644 index 0000000..385ef15 --- /dev/null +++ b/borrow-service/src/main/java/com/test/mapper/BorrowMapper.java @@ -0,0 +1,26 @@ +package com.test.mapper; + +import com.test.entity.Borrow; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * ClassName: BorrowMapper + * Package: com.test.mapper + * + * @author yovinchen + * @Create 2023/8/14 17:04 + */ +@Mapper +public interface BorrowMapper { + @Select("select * from DB_BORROW where uid = #{uid}") + List getBorrowsByUid(int uid); + + @Select("select * from DB_BORROW where bid = #{bid}") + List getBorrowsByBid(int bid); + + @Select("select * from DB_BORROW where bid = #{bid} and uid = #{uid}") + Borrow getBorrow(int uid, int bid); +} diff --git a/borrow-service/src/main/java/com/test/service/BorrowService.java b/borrow-service/src/main/java/com/test/service/BorrowService.java new file mode 100644 index 0000000..4561123 --- /dev/null +++ b/borrow-service/src/main/java/com/test/service/BorrowService.java @@ -0,0 +1,16 @@ +package com.test.service; + +import com.test.entity.User; +import com.test.entity.UserBorrowDetail; + +/** + * ClassName: BorrowService + * Package: com.test.service + * + * @author yovinchen + * @Create 2023/8/14 17:04 + */ +public interface BorrowService { + + UserBorrowDetail getUserBorrowDetailByUid(int uid); +} diff --git a/borrow-service/src/main/java/com/test/service/impl/BorrowServiceImpl.java b/borrow-service/src/main/java/com/test/service/impl/BorrowServiceImpl.java new file mode 100644 index 0000000..0cf1be6 --- /dev/null +++ b/borrow-service/src/main/java/com/test/service/impl/BorrowServiceImpl.java @@ -0,0 +1,43 @@ +package com.test.service.impl; + + + +import com.test.entity.Book; +import com.test.entity.Borrow; +import com.test.entity.User; +import com.test.entity.UserBorrowDetail; +import com.test.mapper.BorrowMapper; +import com.test.service.BorrowService; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +/** + * ClassName: BorrowServiceImpl + * Package: com.test.service.impl + * + * @author yovinchen + * @Create 2023/8/14 21:25 + */ +@Service +public class BorrowServiceImpl implements BorrowService { + + @Resource + BorrowMapper mapper; + + @Override + public UserBorrowDetail getUserBorrowDetailByUid(int uid) { + List borrow = mapper.getBorrowsByUid(uid); + //RestTemplate支持多种方式的远程调用 + RestTemplate template = new RestTemplate(); + //这里通过调用getForObject来请求其他服务,并将结果自动进行封装 + //获取User信息 + User user = template.getForObject("http://localhost:8101/user/" + uid, User.class); + //获取每一本书的详细信息 + List bookList = borrow.stream().map(b -> template.getForObject("http://localhost:8201/book/" + b.getBid(), Book.class)).collect(Collectors.toList()); + return new UserBorrowDetail(user, bookList); + } +} diff --git a/borrow-service/src/main/resources/application.yml b/borrow-service/src/main/resources/application.yml new file mode 100644 index 0000000..1dfc74e --- /dev/null +++ b/borrow-service/src/main/resources/application.yml @@ -0,0 +1,8 @@ +server: + port: 8301 +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://43.143.164.194:3306/mac + username: mac + password: mactest diff --git a/commons/pom.xml b/commons/pom.xml new file mode 100644 index 0000000..f3d4f85 --- /dev/null +++ b/commons/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + com.example + SpringCloudStudy + 0.0.1-SNAPSHOT + + + org.example + commons + + + 8 + 8 + UTF-8 + + + diff --git a/commons/src/main/java/com/test/entity/Book.java b/commons/src/main/java/com/test/entity/Book.java new file mode 100644 index 0000000..111e64b --- /dev/null +++ b/commons/src/main/java/com/test/entity/Book.java @@ -0,0 +1,17 @@ +package com.test.entity; + +import lombok.Data; + +/** + * ClassName: Book + * Package: com.test.entity + * + * @author yovinchen + * @Create 2023/8/14 21:17 + */ +@Data +public class Book { + int bid; + String title; + String des; +} diff --git a/commons/src/main/java/com/test/entity/Borrow.java b/commons/src/main/java/com/test/entity/Borrow.java new file mode 100644 index 0000000..590f4f4 --- /dev/null +++ b/commons/src/main/java/com/test/entity/Borrow.java @@ -0,0 +1,17 @@ +package com.test.entity; + +import lombok.Data; + +/** + * ClassName: Borrow + * Package: com.test.entity + * + * @author yovinchen + * @Create 2023/8/14 17:01 + */ +@Data +public class Borrow { + int id; + int uid; + int bid; +} diff --git a/commons/src/main/java/com/test/entity/User.java b/commons/src/main/java/com/test/entity/User.java new file mode 100644 index 0000000..08b2432 --- /dev/null +++ b/commons/src/main/java/com/test/entity/User.java @@ -0,0 +1,31 @@ +package com.test.entity; + +import lombok.Data; + +/** + * ClassName: User + * Package: com.test.entity + * + * @author yovinchen + * @Create 2023/8/14 17:01 + */ +@Data +public class User { + int uid; + String name; + String sex; + + /** + * ClassName: Book + * Package: com.test.entity + * + * @author yovinchen + * @Create 2023/8/14 17:01 + */ + @Data + public static class Book { + int bid; + String title; + String desc; + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fed1bfb --- /dev/null +++ b/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.7.14 + + + com.example + SpringCloudStudy + 0.0.1-SNAPSHOT + pom + SpringCloudStudy + SpringCloudStudy + + user-service + borrow-service + book-service + commons + + + 1.8 + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.projectlombok + lombok + + + + com.mysql + mysql-connector-j + + + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.0 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/user-service/pom.xml b/user-service/pom.xml new file mode 100644 index 0000000..cbd6116 --- /dev/null +++ b/user-service/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + com.example + SpringCloudStudy + 0.0.1-SNAPSHOT + + + org.example + user-service + + + 8 + 8 + UTF-8 + + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + org.example + commons + 0.0.1-SNAPSHOT + + + diff --git a/user-service/src/main/java/com/test/UserApplication.java b/user-service/src/main/java/com/test/UserApplication.java new file mode 100644 index 0000000..d5cae82 --- /dev/null +++ b/user-service/src/main/java/com/test/UserApplication.java @@ -0,0 +1,18 @@ +package com.test; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * ClassName: UserApplication + * Package: com.test + * + * @author yovinchen + * @Create 2023/8/14 16:26 + */ +@SpringBootApplication +public class UserApplication { + public static void main(String[] args) { + SpringApplication.run(UserApplication.class, args); + } +} diff --git a/user-service/src/main/java/com/test/controller/UserController.java b/user-service/src/main/java/com/test/controller/UserController.java new file mode 100644 index 0000000..7fba3b8 --- /dev/null +++ b/user-service/src/main/java/com/test/controller/UserController.java @@ -0,0 +1,29 @@ +package com.test.controller; + +import com.test.entity.User; +import com.test.service.UserService; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * ClassName: UserController + * Package: com.test.controller + * + * @author yovinchen + * @Create 2023/8/14 17:08 + */ +@RestController +public class UserController { + + @Resource + UserService service; + + //这里以RESTFul风格为例 + @RequestMapping("/user/{uid}") + public User findUserById(@PathVariable("uid") int uid) { + return service.getUserById(uid); + } +} diff --git a/user-service/src/main/java/com/test/mapper/UserMapper.java b/user-service/src/main/java/com/test/mapper/UserMapper.java new file mode 100644 index 0000000..130e282 --- /dev/null +++ b/user-service/src/main/java/com/test/mapper/UserMapper.java @@ -0,0 +1,18 @@ +package com.test.mapper; + +import com.test.entity.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +/** + * ClassName: UserMapper + * Package: com.test.mapper + * + * @author yovinchen + * @Create 2023/8/14 17:04 + */ +@Mapper +public interface UserMapper { + @Select("select * from DB_USER where uid = #{uid}") + User getUserById(int uid); +} diff --git a/user-service/src/main/java/com/test/service/UserService.java b/user-service/src/main/java/com/test/service/UserService.java new file mode 100644 index 0000000..eca1b5c --- /dev/null +++ b/user-service/src/main/java/com/test/service/UserService.java @@ -0,0 +1,14 @@ +package com.test.service; + +import com.test.entity.User; + +/** + * ClassName: UserService + * Package: com.test.service + * + * @author yovinchen + * @Create 2023/8/14 17:05 + */ +public interface UserService { + User getUserById(int uid); +} diff --git a/user-service/src/main/java/com/test/service/impl/UserServiceImpl.java b/user-service/src/main/java/com/test/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..5c50457 --- /dev/null +++ b/user-service/src/main/java/com/test/service/impl/UserServiceImpl.java @@ -0,0 +1,27 @@ +package com.test.service.impl; + +import com.test.entity.User; +import com.test.mapper.UserMapper; +import com.test.service.UserService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * ClassName: UserServiceImpl + * Package: com.test.service.impl + * + * @author yovinchen + * @Create 2023/8/14 17:07 + */ +@Service +public class UserServiceImpl implements UserService { + + @Resource + UserMapper mapper; + + @Override + public User getUserById(int uid) { + return mapper.getUserById(uid); + } +} diff --git a/user-service/src/main/resources/application.yml b/user-service/src/main/resources/application.yml new file mode 100644 index 0000000..6ca8900 --- /dev/null +++ b/user-service/src/main/resources/application.yml @@ -0,0 +1,8 @@ +server: + port: 8101 +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://43.143.164.194:3306/mac + username: mac + password: mactest