From e09987fbbb7bb481218bbecf3fd3ddc83fe0008a Mon Sep 17 00:00:00 2001
From: JACKYMYPERSON <1627832236@qq.com>
Date: Mon, 2 Mar 2026 18:04:06 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AD=A6=E4=B9=A0nacos?=
=?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=BD=AC=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
order-service/pom.xml | 46 +++++++++++++
.../src/main/java/cn/mayiming/App.java | 19 ++++++
.../mayiming/Controller/OrderController.java | 21 ++++++
.../cn/mayiming/Service/OrderService.java | 17 +++++
.../main/java/cn/mayiming/entity/User.java | 22 +++++++
.../cn/mayiming/feign/UserFeignClient.java | 12 ++++
.../src/main/resources/application.yml | 21 ++++++
.../src/test/java/cn/mayiming/AppTest.java | 38 +++++++++++
pom.xml | 1 +
user-service/pom.xml | 12 ++++
.../src/main/java/cn/mayiming/App.java | 3 +
.../mayiming/Controller/UserController.java | 21 ++++++
.../java/cn/mayiming/Mapper/UserMapper.java | 65 +++++++++++++++++++
.../java/cn/mayiming/Service/UserService.java | 33 ++++++++++
.../main/java/cn/mayiming/entity/User.java | 22 +++++++
.../src/main/resources/application.yml | 25 ++++++-
16 files changed, 375 insertions(+), 3 deletions(-)
create mode 100644 order-service/pom.xml
create mode 100644 order-service/src/main/java/cn/mayiming/App.java
create mode 100644 order-service/src/main/java/cn/mayiming/Controller/OrderController.java
create mode 100644 order-service/src/main/java/cn/mayiming/Service/OrderService.java
create mode 100644 order-service/src/main/java/cn/mayiming/entity/User.java
create mode 100644 order-service/src/main/java/cn/mayiming/feign/UserFeignClient.java
create mode 100644 order-service/src/main/resources/application.yml
create mode 100644 order-service/src/test/java/cn/mayiming/AppTest.java
create mode 100644 user-service/src/main/java/cn/mayiming/Controller/UserController.java
create mode 100644 user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java
create mode 100644 user-service/src/main/java/cn/mayiming/Service/UserService.java
create mode 100644 user-service/src/main/java/cn/mayiming/entity/User.java
diff --git a/order-service/pom.xml b/order-service/pom.xml
new file mode 100644
index 0000000..c5781d3
--- /dev/null
+++ b/order-service/pom.xml
@@ -0,0 +1,46 @@
+
+ 4.0.0
+
+ cn.mayiming
+ javamemories-parent
+ 1.0-SNAPSHOT
+
+
+ order-service
+ jar
+
+ order-service
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
+
+
diff --git a/order-service/src/main/java/cn/mayiming/App.java b/order-service/src/main/java/cn/mayiming/App.java
new file mode 100644
index 0000000..a24ce16
--- /dev/null
+++ b/order-service/src/main/java/cn/mayiming/App.java
@@ -0,0 +1,19 @@
+package cn.mayiming;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * Hello world!
+ *
+ */
+@SpringBootApplication
+@EnableFeignClients
+public class App
+{
+ public static void main( String[] args )
+ {
+ SpringApplication.run(App.class, args);
+ }
+}
diff --git a/order-service/src/main/java/cn/mayiming/Controller/OrderController.java b/order-service/src/main/java/cn/mayiming/Controller/OrderController.java
new file mode 100644
index 0000000..92ff990
--- /dev/null
+++ b/order-service/src/main/java/cn/mayiming/Controller/OrderController.java
@@ -0,0 +1,21 @@
+package cn.mayiming.Controller;
+
+
+import cn.mayiming.Service.OrderService;
+import cn.mayiming.entity.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class OrderController {
+
+ @Autowired
+ private OrderService orderService;
+
+ @PostMapping("/order")
+ public User getOrder(@RequestBody User user){
+ return orderService.SearchUserbyname(user);
+ }
+}
diff --git a/order-service/src/main/java/cn/mayiming/Service/OrderService.java b/order-service/src/main/java/cn/mayiming/Service/OrderService.java
new file mode 100644
index 0000000..b9ef406
--- /dev/null
+++ b/order-service/src/main/java/cn/mayiming/Service/OrderService.java
@@ -0,0 +1,17 @@
+package cn.mayiming.Service;
+
+import cn.mayiming.entity.User;
+import cn.mayiming.feign.UserFeignClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class OrderService {
+ @Autowired
+ private UserFeignClient userFeignClient;
+
+ public User SearchUserbyname (User user) {
+ return userFeignClient.selectByUsername(user);
+ }
+
+}
diff --git a/order-service/src/main/java/cn/mayiming/entity/User.java b/order-service/src/main/java/cn/mayiming/entity/User.java
new file mode 100644
index 0000000..3618d51
--- /dev/null
+++ b/order-service/src/main/java/cn/mayiming/entity/User.java
@@ -0,0 +1,22 @@
+package cn.mayiming.entity;
+
+public class User {
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ String username;
+ String password;
+}
diff --git a/order-service/src/main/java/cn/mayiming/feign/UserFeignClient.java b/order-service/src/main/java/cn/mayiming/feign/UserFeignClient.java
new file mode 100644
index 0000000..5ee2147
--- /dev/null
+++ b/order-service/src/main/java/cn/mayiming/feign/UserFeignClient.java
@@ -0,0 +1,12 @@
+package cn.mayiming.feign;
+
+import cn.mayiming.entity.User;
+import feign.Param;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@FeignClient(name = "user-service")
+public interface UserFeignClient {
+ @PostMapping("/user")
+ User selectByUsername(User user);
+}
diff --git a/order-service/src/main/resources/application.yml b/order-service/src/main/resources/application.yml
new file mode 100644
index 0000000..a9021ac
--- /dev/null
+++ b/order-service/src/main/resources/application.yml
@@ -0,0 +1,21 @@
+server:
+ port: 9092
+spring:
+ application:
+ name: order-service
+ cloud:
+ nacos:
+ # 服务注册发现配置
+ discovery:
+ server-addr: localhost:8848 # Nacos 服务地址(默认端口 8848)
+ namespace: public # 命名空间(默认 public,自定义需先在 Nacos 控制台创建)
+ group: DEFAULT_GROUP # 分组(默认 DEFAULT_GROUP)
+ service: order-service # 注册到 Nacos 的服务名(建议和子项目 artifactId 一致)
+ # 配置管理配置(如果引入了 config 依赖才需要)
+ config:
+ server-addr: localhost:8848 # 和 discovery 一致
+ file-extension: yaml
+ namespace: public
+ group: DEFAULT_GROUP
+ config:
+ import: nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}?server-addr=${spring.cloud.nacos.config.server-addr}
\ No newline at end of file
diff --git a/order-service/src/test/java/cn/mayiming/AppTest.java b/order-service/src/test/java/cn/mayiming/AppTest.java
new file mode 100644
index 0000000..2244532
--- /dev/null
+++ b/order-service/src/test/java/cn/mayiming/AppTest.java
@@ -0,0 +1,38 @@
+package cn.mayiming;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/pom.xml b/pom.xml
index f9c25c4..3d12727 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,7 @@
javamemories-common
user-service
+ order-service
diff --git a/user-service/pom.xml b/user-service/pom.xml
index 2408678..64a78df 100644
--- a/user-service/pom.xml
+++ b/user-service/pom.xml
@@ -36,6 +36,18 @@
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+
+
+
+ com.mysql
+ mysql-connector-j
+ runtime
+
diff --git a/user-service/src/main/java/cn/mayiming/App.java b/user-service/src/main/java/cn/mayiming/App.java
index c7fb9fb..48c58d1 100644
--- a/user-service/src/main/java/cn/mayiming/App.java
+++ b/user-service/src/main/java/cn/mayiming/App.java
@@ -1,6 +1,7 @@
package cn.mayiming;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -8,7 +9,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* Hello world!
*
*/
+
@SpringBootApplication
+@MapperScan("cn.mayiming.Mapper")
public class App
{
public static void main( String[] args )
diff --git a/user-service/src/main/java/cn/mayiming/Controller/UserController.java b/user-service/src/main/java/cn/mayiming/Controller/UserController.java
new file mode 100644
index 0000000..a53b05c
--- /dev/null
+++ b/user-service/src/main/java/cn/mayiming/Controller/UserController.java
@@ -0,0 +1,21 @@
+package cn.mayiming.Controller;
+
+import cn.mayiming.Mapper.UserMapper;
+import cn.mayiming.Service.UserService;
+import cn.mayiming.entity.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class UserController {
+
+ @Autowired
+ private UserMapper userMapper;
+
+ @PostMapping("/user")
+ public User getUser(@RequestBody User user) {
+ return userMapper.selectByUsername(user.getUsername());
+ }
+}
diff --git a/user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java b/user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java
new file mode 100644
index 0000000..65232fa
--- /dev/null
+++ b/user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java
@@ -0,0 +1,65 @@
+package cn.mayiming.Mapper;
+
+import cn.mayiming.entity.User;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface UserMapper {
+ /**
+ * 根据ID查询用户
+ * @param id 用户ID
+ * @return 用户信息
+ */
+ @Select("SELECT id, username, password, nickname FROM user WHERE id = #{id}")
+ User selectById(@Param("id") Integer id); // 注意:id类型改为Integer(对应表的int)
+
+ /**
+ * 根据用户名查询用户
+ * @param username 用户名
+ * @return 用户信息
+ */
+ @Select("SELECT id, username, password, nickname FROM user WHERE username = #{username}")
+ User selectByUsername(@Param("username") String username);
+
+ /**
+ * 新增用户(自动回填自增ID)
+ * @param user 用户对象
+ * @return 影响行数
+ */
+ @Insert("INSERT INTO user (username, password, nickname) " +
+ "VALUES (#{username}, #{password}, #{nickname})")
+ // 适配int类型自增主键,keyProperty对应实体类的id属性
+ @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
+ int insert(User user);
+
+ /**
+ * 更新用户信息(全字段更新)
+ * @param user 用户对象(含要更新的字段)
+ * @return 影响行数
+ */
+ @Update("UPDATE user SET " +
+ "username = #{username}, " +
+ "password = #{password}, " +
+ "nickname = #{nickname} " +
+ "WHERE id = #{id}")
+ int updateById(User user);
+
+ /**
+ * 删除用户
+ * @param id 用户ID
+ * @return 影响行数
+ */
+ @Delete("DELETE FROM user WHERE id = #{id}")
+ int deleteById(@Param("id") Integer id);
+
+ /**
+ * 查询所有用户
+ * @return 用户列表
+ */
+ @Select("SELECT id, username, password, nickname FROM user")
+ List selectAll();
+
+}
diff --git a/user-service/src/main/java/cn/mayiming/Service/UserService.java b/user-service/src/main/java/cn/mayiming/Service/UserService.java
new file mode 100644
index 0000000..5f64e49
--- /dev/null
+++ b/user-service/src/main/java/cn/mayiming/Service/UserService.java
@@ -0,0 +1,33 @@
+package cn.mayiming.Service;
+
+import cn.mayiming.Mapper.UserMapper;
+import cn.mayiming.entity.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class UserService {
+ @Autowired
+ private UserMapper userMapper;
+
+ public int addUser() {
+ User user = new User();
+ user.setUsername("test01");
+ user.setPassword("123456");
+ // 新增后id会自动回填
+ int rows = userMapper.insert(user);
+ return rows;
+ }
+
+ // 根据用户名查询
+ public User getUserByUsername(String username) {
+ return userMapper.selectByUsername(username);
+ }
+
+ // 查询所有用户
+ public List getAllUsers() {
+ return userMapper.selectAll();
+ }
+}
diff --git a/user-service/src/main/java/cn/mayiming/entity/User.java b/user-service/src/main/java/cn/mayiming/entity/User.java
new file mode 100644
index 0000000..3618d51
--- /dev/null
+++ b/user-service/src/main/java/cn/mayiming/entity/User.java
@@ -0,0 +1,22 @@
+package cn.mayiming.entity;
+
+public class User {
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ String username;
+ String password;
+}
diff --git a/user-service/src/main/resources/application.yml b/user-service/src/main/resources/application.yml
index 68be9a8..0fb6c7f 100644
--- a/user-service/src/main/resources/application.yml
+++ b/user-service/src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
- port: 9090
+ port: 9091
spring:
application:
name: user-service
@@ -14,8 +14,27 @@ spring:
# 配置管理配置(如果引入了 config 依赖才需要)
config:
server-addr: localhost:8848 # 和 discovery 一致
- file-extension: yaml # 配置文件格式(yaml/yml/properties)
+ file-extension: yaml
namespace: public
group: DEFAULT_GROUP
config:
- import: nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}?server-addr=${spring.cloud.nacos.config.server-addr}
\ No newline at end of file
+ import: nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}?server-addr=${spring.cloud.nacos.config.server-addr}
+ datasource:
+ # 数据库驱动类(MySQL 8.x 用 com.mysql.cj.jdbc.Driver,5.x 用 com.mysql.jdbc.Driver)
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ # 数据库连接 URL(替换为你的数据库地址、端口、库名,如 user_db)
+ url: jdbc:mysql://rm-f8z6oc5a03331500p8o.mysql.rds.aliyuncs.com:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+ # 数据库用户名(默认 root,根据实际情况修改)
+ username: root
+ # 数据库密码(替换为你的 MySQL 密码)
+ password: Root123456
+ # 可选:连接池配置(推荐使用 HikariCP,Spring Boot 2.x 默认)
+ hikari:
+ # 连接池最大连接数
+ maximum-pool-size: 10
+ # 连接池最小空闲连接数
+ minimum-idle: 2
+ # 连接超时时间(毫秒)
+ connection-timeout: 30000
+ # 连接最大存活时间(毫秒)
+ max-lifetime: 1800000
\ No newline at end of file