基于spring boot的学生宿舍管理系统
时间: 2024-04-20 20:21:19 浏览: 121
基于Spring Boot的学生宿舍管理系统是一个用于管理学生宿舍信息和相关功能的系统。它可以帮助学校或学生宿舍管理部门更有效地管理学生宿舍的入住、退房、维修等事务。
该系统的主要功能包括:
1. 学生信息管理:包括学生的基本信息、入住信息、联系方式等。
2. 宿舍信息管理:包括宿舍楼栋、房间号、床位数等信息的管理。
3. 入住管理:记录学生的入住时间、宿舍号等信息,并生成相应的入住记录。
4. 退房管理:记录学生的退房时间,并更新相应的入住记录。
5. 维修管理:记录宿舍维修情况,包括报修、维修进度、维修完成等信息。
6. 通知公告:发布学校或宿舍管理部门的通知和公告信息。
7. 统计报表:生成各类统计报表,如入住率、维修情况统计等。
该系统使用Spring Boot框架进行开发,可以快速搭建和部署。同时,可以结合其他技术如Spring MVC、MyBatis等来实现具体功能。
相关问题
基于spring boot学生宿舍管理系统登录功能之不同角色判断验证
在学生宿舍管理系统中,不同的用户角色可能有不同的权限和访问限制,因此需要在登录时对用户进行角色判断验证。下面是基于Spring Boot的实现方式:
1. 创建一个User实体类,用于存储用户信息,包括用户名、密码和角色等字段。
2. 创建一个UserService类,用于实现用户登录验证功能。该类需要依赖一个UserRepository接口,用于从数据库中获取用户信息。
3. 在Spring Security配置类中,使用AuthenticationProvider接口实现身份验证逻辑。在该接口的实现类中,通过调用UserService类的方法来验证用户的身份和角色。
4. 在登录页面中,根据用户输入的用户名和密码,调用UserService类的登录验证方法,验证用户身份和角色是否正确。如果验证通过,则将用户信息存储在Session中,并跳转到对应角色的主页面;否则返回登录页面并提示错误信息。
示例代码:
User实体类:
```
@Entity
@Table(name = "user")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String role;
// 省略getter和setter方法
}
```
UserRepository接口:
```
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
```
UserService类:
```
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("用户不存在");
}
List<GrantedAuthority> authorities = new ArrayList<>();
authorities.add(new SimpleGrantedAuthority(user.getRole()));
return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), authorities);
}
public User login(String username, String password) {
User user = userRepository.findByUsername(username);
if (user == null) {
throw new RuntimeException("用户不存在");
}
if (!user.getPassword().equals(password)) {
throw new RuntimeException("密码不正确");
}
return user;
}
}
```
Spring Security配置类:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(new AuthenticationProvider() {
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String username = authentication.getName();
String password = authentication.getCredentials().toString();
User user = userService.login(username, password);
List<GrantedAuthority> authorities = new ArrayList<>();
authorities.add(new SimpleGrantedAuthority(user.getRole()));
return new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword(), authorities);
}
@Override
public boolean supports(Class<?> aClass) {
return true;
}
});
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("admin")
.antMatchers("/user/**").hasRole("user")
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/index")
.permitAll()
.and()
.logout()
.permitAll();
}
}
```
在登录页面中,根据用户输入的用户名和密码,调用UserService类的login方法进行验证:
```
@Controller
public class LoginController {
@Autowired
private UserService userService;
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/login")
public String doLogin(@RequestParam String username, @RequestParam String password, HttpSession session) {
User user = userService.login(username, password);
session.setAttribute("user", user);
if (user.getRole().equals("admin")) {
return "redirect:/admin/index";
} else {
return "redirect:/user/index";
}
}
}
```
以上是一个基于Spring Boot实现的学生宿舍管理系统登录功能之不同角色判断验证的示例代码,仅供参考。
基于spring boot学生宿舍管理系统分三个角色登录功能代码
以下是基于 Spring Boot 的学生宿舍管理系统的三个角色的登录功能代码示例:
1. 学生登录功能代码
```java
@Controller
public class StudentLoginController {
@Autowired
private StudentService studentService;
@GetMapping("/student/login")
public String login() {
return "student/login";
}
@PostMapping("/student/doLogin")
public String doLogin(@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session, Model model) {
Student student = studentService.login(username, password);
if (student != null) {
session.setAttribute("student", student);
return "redirect:/student/home"; // 登录成功,跳转到学生首页
} else {
model.addAttribute("error", "用户名或密码错误");
return "student/login"; // 登录失败,返回登录页面并显示错误信息
}
}
}
```
2. 宿管登录功能代码
```java
@Controller
public class DormAdminLoginController {
@Autowired
private DormAdminService dormAdminService;
@GetMapping("/dormAdmin/login")
public String login() {
return "dormAdmin/login";
}
@PostMapping("/dormAdmin/doLogin")
public String doLogin(@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session, Model model) {
DormAdmin dormAdmin = dormAdminService.login(username, password);
if (dormAdmin != null) {
session.setAttribute("dormAdmin", dormAdmin);
return "redirect:/dormAdmin/home"; // 登录成功,跳转到宿管首页
} else {
model.addAttribute("error", "用户名或密码错误");
return "dormAdmin/login"; // 登录失败,返回登录页面并显示错误信息
}
}
}
```
3. 管理员登录功能代码
```java
@Controller
public class AdminLoginController {
@Autowired
private AdminService adminService;
@GetMapping("/admin/login")
public String login() {
return "admin/login";
}
@PostMapping("/admin/doLogin")
public String doLogin(@RequestParam("username") String username,
@RequestParam("password") String password,
HttpSession session, Model model) {
Admin admin = adminService.login(username, password);
if (admin != null) {
session.setAttribute("admin", admin);
return "redirect:/admin/home"; // 登录成功,跳转到管理员首页
} else {
model.addAttribute("error", "用户名或密码错误");
return "admin/login"; // 登录失败,返回登录页面并显示错误信息
}
}
}
```
注意:以上示例代码仅供参考,实际实现中需要根据具体的业务需求进行修改。同时,为了保证系统的安全性,需要对用户输入的用户名和密码进行加密处理。
阅读全文