用springboot做一个登陆注册代码
时间: 2023-10-12 14:29:46 浏览: 36
好的,以下是一个简单的登录注册功能的示例代码:
1. 实体类 User.java
```
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// 省略 getter、setter、构造方法等
}
```
2. 数据访问层 UserRepository.java
```
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
```
3. 服务层 UserService.java
```
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;
public User save(User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
return userRepository.save(user);
}
public User findByUsername(String username) {
return userRepository.findByUsername(username);
}
}
```
4. 控制器层 UserController.java
```
@RestController
public class UserController {
@Autowired
private UserService userService;
@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;
// 用户注册
@PostMapping("/register")
public Result register(User user) {
User oldUser = userService.findByUsername(user.getUsername());
if (oldUser != null) {
return Result.error("用户名已存在!");
}
userService.save(user);
return Result.ok("注册成功!");
}
// 用户登录
@PostMapping("/login")
public Result login(User user) {
User oldUser = userService.findByUsername(user.getUsername());
if (oldUser == null) {
return Result.error("用户名不存在!");
} else if (!bCryptPasswordEncoder.matches(user.getPassword(), oldUser.getPassword())) {
return Result.error("密码不正确!");
}
return Result.ok("登录成功!");
}
}
```
5. 返回结果封装类 Result.java
```
public class Result {
private Integer code;
private String message;
private Object data;
// 省略 getter、setter、构造方法等
public static Result ok(String message) {
return new Result(200, message, null);
}
public static Result error(String message) {
return new Result(500, message, null);
}
}
```
以上代码仅供参考,具体实现方式可以根据实际情况进行调整。