diff --git a/javamemories-common/src/main/java/cn/mayiming/App.java b/javamemories-common/src/main/java/cn/mayiming/App.java
index bf85d76..5a2115f 100644
--- a/javamemories-common/src/main/java/cn/mayiming/App.java
+++ b/javamemories-common/src/main/java/cn/mayiming/App.java
@@ -4,7 +4,7 @@ package cn.mayiming;
* Hello world!
*
*/
-@Spring
+
public class App
{
public static void main( String[] args )
diff --git a/user-service/pom.xml b/user-service/pom.xml
index 9637115..2408678 100644
--- a/user-service/pom.xml
+++ b/user-service/pom.xml
@@ -16,20 +16,42 @@
UTF-8
+ 8.0.33
+
+ 3.0.3
-
- org.springframework.boot
- spring-boot-starter-web
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
-
+
- org.springframework.boot
- spring-boot-starter-test
- test
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
-
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 3.2.3
+
+
+
+ repackage
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/user-service/src/main/java/cn/mayiming/App.java b/user-service/src/main/java/cn/mayiming/App.java
index bd10567..c7fb9fb 100644
--- a/user-service/src/main/java/cn/mayiming/App.java
+++ b/user-service/src/main/java/cn/mayiming/App.java
@@ -1,5 +1,6 @@
package cn.mayiming;
+
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/user-service/src/main/java/cn/mayiming/Controller/Redis/RedisParam.java b/user-service/src/main/java/cn/mayiming/Controller/Redis/RedisParam.java
deleted file mode 100644
index 59e7ed9..0000000
--- a/user-service/src/main/java/cn/mayiming/Controller/Redis/RedisParam.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package cn.mayiming.Controller.Redis;
-
-public class RedisParam {
- private String key;
- private String value;
-
- // 必须加无参构造器(JSON解析需要)
- public RedisParam() {}
-
- // GET/SET方法(必须加,否则JSON解析不到值)
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-}
diff --git a/user-service/src/main/java/cn/mayiming/Controller/Redis/Redistest.java b/user-service/src/main/java/cn/mayiming/Controller/Redis/Redistest.java
deleted file mode 100644
index 9ecfabe..0000000
--- a/user-service/src/main/java/cn/mayiming/Controller/Redis/Redistest.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.mayiming.Controller.Redis;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.concurrent.TimeUnit;
-
-@RestController
-public class Redistest {
- @Autowired
- private StringRedisTemplate stringRedisTemplate;
- @PostMapping("/redis/put")
- public String put(@RequestBody RedisParam param) {
- String key = param.getKey();
- stringRedisTemplate.opsForValue().set(key, "123", 10, TimeUnit.MINUTES);
- String redisValue = stringRedisTemplate.opsForValue().get(key);
- return "Redis写入成功!key=" + key + ",value=" + redisValue;
- }
-}
diff --git a/user-service/src/main/java/cn/mayiming/Controller/UserCon/UserBody.java b/user-service/src/main/java/cn/mayiming/Controller/UserCon/UserBody.java
deleted file mode 100644
index 1be8081..0000000
--- a/user-service/src/main/java/cn/mayiming/Controller/UserCon/UserBody.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.mayiming.Controller.UserCon;
-
-public class UserBody {
- 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;
- }
-
- public String username;
- public String password;
-}
diff --git a/user-service/src/main/java/cn/mayiming/Controller/UserCon/UserController.java b/user-service/src/main/java/cn/mayiming/Controller/UserCon/UserController.java
deleted file mode 100644
index 2db35f9..0000000
--- a/user-service/src/main/java/cn/mayiming/Controller/UserCon/UserController.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cn.mayiming.Controller.UserCon;
-
-import cn.mayiming.Mapper.UserMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@RestController
-public class UserController {
-
- @Autowired
- private UserMapper userMapper;
-
- @PostMapping("/login")
- public Map login(@RequestBody UserBody user) {
- Map result = new HashMap<>();
- try {
- String dbPassword = userMapper.getPasswordByUsername(user.getUsername());
- String username = user.getUsername();
- String password = user.getPassword();
- // 3. 编写 SQL 查询数据库中的用户密码
- // 用 ? 占位符,防止 SQL 注入(必须!)
-
- // 4. 验证密码(实际项目要加密对比,这里简单演示)
- if (password != null && password.equals(dbPassword)) {
- result.put("code", 200);
- result.put("msg", "登录成功");
- result.put("data", username);
- } else {
- result.put("code", 400);
- result.put("msg", "密码错误");
- }
- } catch (Exception e) {
- // 捕获“用户不存在”等异常
- result.put("code", 404);
- result.put("msg", "用户名不存在或登录失败");
- result.put("error", e.getMessage());
- }
- return result;
- }
-}
diff --git a/user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java b/user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java
deleted file mode 100644
index 874dde2..0000000
--- a/user-service/src/main/java/cn/mayiming/Mapper/UserMapper.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package cn.mayiming.Mapper;
-import cn.mayiming.Controller.UserCon.UserBody;
-import org.apache.ibatis.annotations.*;
-
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-public interface UserMapper {
- @Select("SELECT password FROM user WHERE username = #{username}")
- String getPasswordByUsername(String username);
- /**
- * 根据ID查询用户(单条查询)
- * @param id 用户ID
- * @return 完整用户信息
- */
- @Select("SELECT id, username, password, nickname, create_time AS createTime FROM user WHERE id = #{id}")
- UserBody getUserById(Long id);
-
- /**
- * 根据用户名查询完整用户信息(登录/校验用)
- * @param username 用户名
- * @return 完整用户信息
- */
- @Select("SELECT id, username, password, nickname, create_time AS createTime FROM user WHERE username = #{username}")
- UserBody getUserByUsername(String username);
-
- /**
- * 查询所有用户(分页建议用 MyBatis-Plus,这里先实现全量)
- * @return 用户列表
- */
- @Select("SELECT id, username, password, nickname, create_time AS createTime FROM user")
- List listAllUsers();
-
- // ==================== 增 ====================
- /**
- * 新增用户(自增ID)
- * @param user 用户实体
- * @return 影响行数(1=成功,0=失败)
- */
- @Insert("INSERT INTO user (username, password, nickname, create_time) VALUES (#{username}, #{password}, #{nickname}, #{createTime})")
- @Options(useGeneratedKeys = true, keyProperty = "id") // 自动返回自增的ID到user对象的id字段
- int insertUser(UserBody user);
-
- // ==================== 改 ====================
- /**
- * 根据ID修改用户昵称
- * @param id 用户ID
- * @param nickname 新昵称
- * @return 影响行数
- */
- @Update("UPDATE user SET nickname = #{nickname} WHERE id = #{id}")
- int updateNicknameById(@Param("id") Long id, @Param("nickname") String nickname);
-
- /**
- * 根据用户名修改密码
- * @param username 用户名
- * @param newPassword 新密码
- * @return 影响行数
- */
- @Update("UPDATE user SET password = #{newPassword} WHERE username = #{username}")
- int updatePasswordByUsername(@Param("username") String username, @Param("newPassword") String password);
-
- // ==================== 删 ====================
- /**
- * 根据ID删除用户
- * @param id 用户ID
- * @return 影响行数
- */
- @Delete("DELETE FROM user WHERE id = #{id}")
- int deleteUserById(Long id);
-
- /**
- * 根据用户名删除用户
- * @param username 用户名
- * @return 影响行数
- */
- @Delete("DELETE FROM user WHERE username = #{username}")
- int deleteUserByUsername(String username);
-}
diff --git a/user-service/src/main/resources/application.yml b/user-service/src/main/resources/application.yml
index 42d3b93..68be9a8 100644
--- a/user-service/src/main/resources/application.yml
+++ b/user-service/src/main/resources/application.yml
@@ -1,24 +1,21 @@
server:
- port: 9091
+ port: 9090
spring:
- data:
- redis:
- port: 6379
- password: ""
- database: 0
- timeout: 10000
- datasource:
- # 连接 URL(关键:test_db 是你要连接的数据库名,需提前创建)
- url: jdbc:mysql://rm-f8z6oc5a03331500p8o.mysql.rds.aliyuncs.com:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
- # 数据库用户名
- username: root
- # 数据库密码(替换为你的 MySQL 密码)
- password: Root123456
- # 驱动类名(MySQL 8.x 用这个,5.x 改为 com.mysql.jdbc.Driver)
- driver-class-name: com.mysql.cj.jdbc.Driver
- # 连接池配置(可选,提升性能)
- hikari:
- maximum-pool-size: 10 # 最大连接数
- minimum-idle: 2 # 最小空闲连接数
- idle-timeout: 60000 # 空闲连接超时时间(毫秒)
- connection-timeout: 30000 # 连接超时时间(毫秒)
\ No newline at end of file
+ application:
+ name: user-service
+ cloud:
+ nacos:
+ # 服务注册发现配置
+ discovery:
+ server-addr: localhost:8848 # Nacos 服务地址(默认端口 8848)
+ namespace: public # 命名空间(默认 public,自定义需先在 Nacos 控制台创建)
+ group: DEFAULT_GROUP # 分组(默认 DEFAULT_GROUP)
+ service: user-service # 注册到 Nacos 的服务名(建议和子项目 artifactId 一致)
+ # 配置管理配置(如果引入了 config 依赖才需要)
+ config:
+ server-addr: localhost:8848 # 和 discovery 一致
+ file-extension: yaml # 配置文件格式(yaml/yml/properties)
+ 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/user-service/src/test/java/cn/mayiming/AppTest.java b/user-service/src/test/java/cn/mayiming/AppTest.java
deleted file mode 100644
index 2244532..0000000
--- a/user-service/src/test/java/cn/mayiming/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-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 );
- }
-}