From e82ce1e17e6655bce8f69b0ce8816b5a70d0c16c Mon Sep 17 00:00:00 2001 From: heshunme Date: Mon, 24 Jun 2024 10:27:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E4=B8=BAJPA=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=AE=A4=E8=AF=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=82=20=E6=9B=B4=E6=96=B0=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B=EF=BC=8C=E4=BD=8D=E4=BA=8Eauthentication?= =?UTF-8?q?=E5=8C=85=E4=B8=AD=E3=80=82=20=E7=B2=BE=E7=AE=80=E4=BA=86maven?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 24 +++++++----- .../controller/UserController.java | 23 +++++++++++ .../backend/authentication/model/User.java | 39 +++++++++++++++++++ .../repository/UserRepository.java | 8 ++++ .../authentication/service/UserService.java | 16 ++++++++ src/main/resources/application.properties | 23 +++++++++++ 6 files changed, 123 insertions(+), 10 deletions(-) create mode 100644 src/main/java/org/cmh/backend/authentication/controller/UserController.java create mode 100644 src/main/java/org/cmh/backend/authentication/service/UserService.java diff --git a/pom.xml b/pom.xml index fabba7b..428b562 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,10 @@ org.springframework.boot spring-boot-starter-jdbc + + org.springframework.boot + spring-boot-starter-data-jpa + @@ -58,11 +62,11 @@ org.springframework.boot spring-boot-starter-web-services - - org.mybatis.spring.boot - mybatis-spring-boot-starter - 3.0.3 - + + + + + org.springframework.session spring-session-jdbc @@ -74,11 +78,11 @@ runtime true - - com.h2database - h2 - runtime - + + + + + com.mysql mysql-connector-j diff --git a/src/main/java/org/cmh/backend/authentication/controller/UserController.java b/src/main/java/org/cmh/backend/authentication/controller/UserController.java new file mode 100644 index 0000000..f4e6aae --- /dev/null +++ b/src/main/java/org/cmh/backend/authentication/controller/UserController.java @@ -0,0 +1,23 @@ +package org.cmh.backend.authentication.controller; + +import org.cmh.backend.authentication.model.User; +import org.cmh.backend.authentication.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/users") +public class UserController { + @Autowired + private UserService userService; + + @GetMapping("/{username}") + public ResponseEntity getUser(@PathVariable String username) { + User user = userService.getUserByUsername(username); + return ResponseEntity.ok(user); + } +} diff --git a/src/main/java/org/cmh/backend/authentication/model/User.java b/src/main/java/org/cmh/backend/authentication/model/User.java index e69de29..ba9aa53 100644 --- a/src/main/java/org/cmh/backend/authentication/model/User.java +++ b/src/main/java/org/cmh/backend/authentication/model/User.java @@ -0,0 +1,39 @@ +package org.cmh.backend.authentication.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class User { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String username; + private String password; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + 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; + } +} \ No newline at end of file diff --git a/src/main/java/org/cmh/backend/authentication/repository/UserRepository.java b/src/main/java/org/cmh/backend/authentication/repository/UserRepository.java index e69de29..2c5116e 100644 --- a/src/main/java/org/cmh/backend/authentication/repository/UserRepository.java +++ b/src/main/java/org/cmh/backend/authentication/repository/UserRepository.java @@ -0,0 +1,8 @@ +package org.cmh.backend.authentication.repository; + +import org.cmh.backend.authentication.model.User; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserRepository extends JpaRepository { + User findByUsername(String username); +} diff --git a/src/main/java/org/cmh/backend/authentication/service/UserService.java b/src/main/java/org/cmh/backend/authentication/service/UserService.java new file mode 100644 index 0000000..30e5134 --- /dev/null +++ b/src/main/java/org/cmh/backend/authentication/service/UserService.java @@ -0,0 +1,16 @@ +package org.cmh.backend.authentication.service; + +import org.cmh.backend.authentication.model.User; +import org.cmh.backend.authentication.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + @Autowired + private UserRepository userRepository; + + public User getUserByUsername(String username) { + return userRepository.findByUsername(username); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3ca17a4..bceeb5c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,24 @@ spring.application.name=backend +server.port=8080 +spring.datasource.url=jdbc:mysql://ecs1.heshunme.xyz:3306/cmh +spring.datasource.username=neu +spring.datasource.password=5rWL55uf5rGH5a6e6K6t5bCP57uE +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +# JPA settings +spring.jpa.hibernate.ddl-auto=update +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect +# Data source pool properties +spring.datasource.hikari.maximum-pool-size=10 +spring.datasource.hikari.minimum-idle=5 +spring.datasource.hikari.idle-timeout=30000 +spring.datasource.hikari.pool-name=SpringBootHikariCP +spring.datasource.hikari.max-lifetime=2000000 +spring.datasource.hikari.connection-timeout=30000 +# Servlet +server.servlet.encoding.enabled=true +server.servlet.encoding.force=true +server.servlet.encoding.charset=utf-8 + +