基于Java+SpringBoot+vue+node

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **

查看我的课程成绩信息:

学校通知公告信息:添加、修改、删除、查询等、利用富文本进行数据上传和显示

学校新闻管理:

 图书资料上传下载:

附件查看预览下载:

修改密码:

主要代码展示:


用户登录验证

/**

  • 登录相关

  • @author lyy

*/

@RestController

public class SysLoginController extends AbstractController {

@Autowired

private SysUserService sysUserService;

@Autowired

private SysUserTokenService sysUserTokenService;

@Autowired

private SysCaptchaService sysCaptchaService;

/**

  • 验证码

*/

@GetMapping(“captcha.jpg”)

public void captcha(HttpServletResponse response, String uuid)throws IOException {

response.setHeader(“Cache-Control”, “no-store, no-cache”);

response.setContentType(“image/jpeg”);

//获取图片验证码

BufferedImage image = sysCaptchaService.getCaptcha(uuid);

ServletOutputStream out = response.getOutputStream();

ImageIO.write(image, “jpg”, out);

IOUtils.closeQuietly(out);

}

/**

  • 登录

*/

@PostMapping(“/sys/login”)

public Map<String, Object> login(@RequestBody SysLoginForm form)throws IOException {

boolean captcha = sysCaptchaService.validate(form.getUuid(), form.getCaptcha());

// if(!captcha){

// return R.error(“验证码不正确”);

// }

//用户信息

SysUserEntity user = sysUserService.queryByUserName(form.getUsername());

//账号不存在、密码错误

if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) {

return R.error(“账号或密码不正确”);

}

//账号锁定

if(user.getStatus() == 0){

return R.error(“账号已被锁定,请联系管理员”);

}

//生成token,并保存到数据库

R r = sysUserTokenService.createToken(user.getUserId());

return r;

}

/**

  • 退出

*/

@PostMapping(“/sys/logout”)

public R logout() {

sysUserTokenService.logout(getUserId());

return R.ok();

}

前端VUE+element表单:

<el-form :model=“dataForm” :rules=“dataRule” ref=“dataForm” @keyup.enter.native=“dataFormSubmit()” status-icon>

<img :src=“captchaPath” @click=“getCaptcha()” alt=“”>

<el-button class=“login-btn-submit” type=“danger” @click=“dataFormSubmit()”>登录

dataFormSubmit () {

this.$refs[‘dataForm’].validate((valid) => {

if (valid) {

this.$http({

url: this.$http.adornUrl(‘/sys/login’),

method: ‘post’,

data: this.$http.adornData({

‘username’: this.dataForm.userName,

‘password’: this.dataForm.password,

‘uuid’: this.dataForm.uuid,

‘captcha’: this.dataForm.captcha

})

}).then(({data}) => {

if (data && data.code === 0) {

this.$cookie.set(‘token’, data.token)

this.$router.replace({ name: ‘home’ })

} else {

this.getCaptcha()

this.$message.error(data.msg)

}

})

}

})

},

数据库连接配置:

spring:

datasource:

type: com.alibaba.druid.pool.DruidDataSource

druid:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://localhost:3306/renren_students?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

username: root

password: 123456

initial-size: 10

max-active: 100

min-idle: 10

max-wait: 60000

pool-prepared-statements: true

max-pool-prepared-statement-per-connection-size: 20

time-between-eviction-runs-millis: 60000

min-evictable-idle-time-millis: 300000

#Oracle需要打开注释

#validation-query: SELECT 1 FROM DUAL

test-while-idle: true

test-on-borrow: false

test-on-return: false

stat-view-servlet:

enabled: true

url-pattern: /druid/*

#login-username: admin

#login-password: admin

filter:

stat:

log-slow-sql: true

slow-sql-millis: 1000

merge-sql: false

wall:

config:

multi-statement-allow: true

权限控制:

@Bean(“shiroFilter”)

public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {

ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();

shiroFilter.setSecurityManager(securityManager);

//oauth过滤

Map<String, Filter> filters = new HashMap<>();

filters.put(“oauth2”, new OAuth2Filter());

shiroFilter.setFilters(filters);

Map<String, String> filterMap = new LinkedHashMap<>();

filterMap.put(“/webjars/**”, “anon”);

filterMap.put(“/druid/**”, “anon”);

filterMap.put(“/app/**”, “anon”);

filterMap.put(“/sys/login”, “anon”);

filterMap.put(“/swagger/**”, “anon”);

filterMap.put(“/v2/api-docs”, “anon”);

filterMap.put(“/swagger-ui.html”, “anon”);

filterMap.put(“/swagger-resources/**”, “anon”);

filterMap.put(“/captcha.jpg”, “anon”);

filterMap.put(“/aaa.txt”, “anon”);

filterMap.put(“/virtuel/**”, “anon”);

filterMap.put(“/**”, “oauth2”);

shiroFilter.setFilterChainDefinitionMap(filterMap);

return shiroFilter;

}

数据库表结构文档


****数据库名:****renren_students

****文档版本:****V1.0.0

****文档描述:****数据库表设计描述

表cla


编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

id

int

10

0

N

Y

2

name

varchar

255

0

Y

N

3

class_num

varchar

255

0

Y

N

4

user_nums

varchar

255

0

Y

N

表course


编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

id

int

10

0

N

Y

2

name

varchar

255

0

Y

N

3

teacher_num

varchar

255

0

Y

N

4

sk_time

datetime

19

0

Y

N

5

sk_place

varchar

255

0

Y

N

6

weeks_number

varchar

255

0

Y

N

7

kc_type

varchar

255

0

Y

N

8

faculty

varchar

255

0

Y

N

9

score

varchar

255

0

Y

N

10

bz

varchar

255

0

Y

N

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
宿舍管理系统是一个比较综合的系统,需要涉及到前端、后端、数据库等多个方面。下面是一个基于VueSpringboot的宿舍管理系统的搭建步骤: 1. 环境搭建 首先需要安装好Node.js和Java开发环境,以及MySQL数据库。 2. 前端搭建 使用Vue-cli创建一个Vue项目,安装Vue-router和Axios等必要的依赖。在src目录下创建components、views、router、store等文件夹,分别存放组件、页面、路由和状态管理相关文件。 3. 后端搭建 使用Spring Initializr创建一个Springboot项目,选择必要的依赖,如Spring Web、Spring Data JPA、MySQL Driver等。在src目录下创建entity、repository、service、controller等文件夹,分别存放实体类、数据访问层、服务层和控制层相关文件。 4. 数据库设计 根据宿舍管理系统的需求,设计数据库表结构,如宿舍楼信息表、宿舍信息表、学生信息表等。 5. 前后端交互 使用Axios在前端与后端进行数据交互,使用Vue-router实现页面跳转。 6. 前端界面设计 根据需求设计前端页面,如登录页面、宿舍楼信息管理页面、宿舍信息管理页面、学生信息管理页面等。 7. 后端接口设计 设计后端接口,如登录接口、宿舍楼信息管理接口、宿舍信息管理接口、学生信息管理接口等。使用@RestController注解实现控制层,使用@Service注解实现服务层,使用@Repository注解实现数据访问层。 8. 系统测试 完成前后端搭建后,进行系统测试,测试系统的功能是否正常。 以上是一个基于VueSpringboot的宿舍管理系统的搭建步骤,具体实现还需根据需求进行具体开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值