用springboot写一个登陆注册以及查询用户列表项目包括pom.xml文件
时间: 2023-12-19 19:04:45 浏览: 78
好的,以下是一个简单的使用 Spring Boot 框架实现的用户登陆注册以及查询用户列表的示例项目,包含了 pom.xml 文件:
pom.xml 文件:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>user-management</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<!-- Spring Boot web framework -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- H2 in-memory database -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Spring Boot test framework -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Spring Boot Maven plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
```
该项目使用了 Spring Boot 的 web 和 data JPA 模块,以及 H2 内存数据库。其中,web 模块用于实现 RESTful API,data JPA 模块用于实现数据库访问功能,H2 内存数据库用于存储用户信息。
下面是项目的核心代码:
User.java 文件:
```java
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
@Size(max = 50)
@Email
private String email;
@NotBlank
@Size(max = 120)
private String password;
// getters and setters
}
```
该类是一个实体类,用于映射数据库中的用户表。其中,id 为用户的唯一标识,email 为用户的邮箱,password 为用户的密码。
UserController.java 文件:
```java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("")
public List<User> getAllUsers() {
return userRepository.findAll();
}
@PostMapping("/register")
public ResponseEntity<?> registerUser(@Valid @RequestBody User user) {
if (userRepository.existsByEmail(user.getEmail())) {
return ResponseEntity.badRequest().body("Email already exists");
}
user.setPassword(new BCryptPasswordEncoder().encode(user.getPassword()));
userRepository.save(user);
return ResponseEntity.ok("User registered successfully");
}
@PostMapping("/login")
public ResponseEntity<?> authenticateUser(@RequestBody User user) {
User existingUser = userRepository.findByEmail(user.getEmail())
.orElseThrow(() -> new ResourceNotFoundException("User", "email", user.getEmail()));
if (!new BCryptPasswordEncoder().matches(user.getPassword(), existingUser.getPassword())) {
return ResponseEntity.badRequest().body("Invalid password");
}
return ResponseEntity.ok("User authenticated successfully");
}
}
```
该类是一个控制器类,用于处理用户相关的请求。其中,`@RestController` 注解表明该类是一个 RESTful API 控制器,`@RequestMapping` 注解指定了该控制器处理的请求路径前缀。`@Autowired` 注解用于自动注入 `UserRepository` 对象,该对象用于访问数据库。
`@GetMapping` 注解用于处理 GET 请求,该方法返回所有用户的列表。`@PostMapping` 注解用于处理 POST 请求,`/register` 路径用于注册新用户,`/login` 路径用于验证用户身份。
以上就是一个简单的使用 Spring Boot 框架实现的用户登陆注册以及查询用户列表的示例项目。
阅读全文