基于SpringBoot+Vue+Redis实现的前后端分离学生宿舍管理系统

53 阅读1分钟

   背景分析

随着互联网快速发展,电脑的发展,让我们的生活更加的便利,也在学校的办公管理领域得到了很好发挥,以前记录学生宿舍操作需要通过人工记录的方式,来登记,这样的操作极其不方便,尤其是在查阅某个人员进出时的情况,需要查看过多的人员信息,这对工作造成了极不方便,所以开发一套学生宿舍管理系统,就可以很好的解决这一难题。
通过使用学生宿舍管理系统不仅可以降低人工成本,而且在管理上也可以得到很好的提升。以前在宿舍记录管理中,最容易出错的环节,就是登陆人员的进出情况,而该系统软件的出现,可让更多的时间花在如何管理信息化,让信息化得到更快捷的服务。本系统结合业务需求,及线下宿舍管理操作流程,量身定制一款学生宿舍管理软件。主要解决快速查找人员宿舍管理等实用性功能,主要是基于Web网页开发的一个宿舍管理系统。

使用技术

技术上采用springboot集成快速开发框架,前端使用vue方式

数据库er图设计

​编辑

部分代码

@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
    /**
     * http 异常处理
     * @param e
     * @return
     */
    @ExceptionHandler(HttpException.class)
    public Result httpExceptionHandler(HttpException e) {
        return Result.fail(e.getCode(), e.getMessage());
    }

    /**
     * 验证失败异常处理
     * @param e
     * @return
     */
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
        return Result.fail(HttpCode.FAILED, "请正确填写参数").add(e.getMessage());
    }

    /**
     * 默认异常处理
     * @param e
     * @return
     */
    @ExceptionHandler(Exception.class)
    public Result exceptionHandler(Exception e) {
        return Result.fail(HttpCode.FAILED, "服务器未知错误").add(e.getMessage());
    }
}
跨域配置
@Configuration
public class MyConfig implements WebMvcConfigurer {
    private final SecurityInterceptor securityInterceptor;

    private final LoginInterceptor loginInterceptor;

    public MyConfig(SecurityInterceptor securityInterceptor, LoginInterceptor loginInterceptor) {
        this.securityInterceptor = securityInterceptor;
        this.loginInterceptor = loginInterceptor;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //登录拦截器
        registry.addInterceptor(loginInterceptor).addPathPatterns("/**")
                .excludePathPatterns("/imgs/**", "/js/**", "/css/**", "/login/**"
                        , "/login.html", "/error", "/upload_img/**").order(0);

        //权限拦截器
        registry.addInterceptor(securityInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns("/imgs/**", "/js/**", "/css/**", "/login/**"
                        , "/login.html", "/error", "/upload_img/**","/permission/**").order(1);
    }


    /**
     * 跨域
     * @return
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("*");
        config.setAllowCredentials(false);
        config.addAllowedMethod("*");
        config.addAllowedHeader("*");
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        return new CorsFilter(configSource);
    }

    /**
     * 外部资源
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload_img/**")
                .addResourceLocations("file:" + Constant.UPLOAD_PATH);
    }

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

实现效果

​编辑

 ​编辑

​编辑

 ​编辑

\