湖科大校园美食项目笔记
湖科大校园美食项目笔记
FANSEA湖科大校园美食项目笔记
HTML标签
z-index:可以设置元素堆叠顺序,用来解决两元素不重叠问题,z-index值越大堆叠,就会叠在上面
position:absolute:设置绝对位置
获取html文本框中的值(dom)
1.var inputDom = document.getElementById(“text”);//找到元素,假如给input元素加了id属性 且 值为:text
2.var text = inputDom.value; //获取元素值
Controller写法
OSS对象上传照片到服务器
form表单enctype属性
enctype:规定了form表单在发送到服务器时候编码方式,有如下的三个值。
- application/x-www-form-urlencoded:默认的编码方式。但在用文本的传输和MP3等大型文件的时候,使用这种编码就显得效率低下。
- multipart/form-data:指定传输数据为二进制类型,比如图片,mp3,文件
- text/plain:纯文本的传输。空格转换为”+”号,但不对特殊字符编码。
1 | <form action="form_action.asp" enctype="text/plain"> |
定义判断用户名是否存在的方法
count(判断条件)返回满足该条件的数量
文中判断count返回的数值是否大于0,判断是否存在用户
密码加密
PasswordEncoder的bean对象在spring容器中可以在方法中直接注入使用
实现分页功能
1.由于分页功能就是aop操作所以我们首先需要设置拦截器
2.利用ipage对象进行分页查询
加入querywrapper可以条件查询,最后把结果封装在了page对象中
项目报错反思
1.如果代码没错依旧报错可以试着在maven上面找错,可以试着install
给pojo添加数据库不存在的属性
1 |
使pojo类型set方法返回pojo对象
1 |
程序预处理
创建CommandLineRunner实现类,重写run(String… args)方法,在项目启动时执行
1 | @Component |
定时任务
1.@EnableScheduling第一步配置定时任务,定义在application启动类上
1 |
|
2.@Scheduled和cron参数指定定时任务的方法
1 |
|
前端知识加油站
1.src/api路径封装前端访问后端接口的方法(可以在这里设置是否需要token)
1 | export function articleList(query) { |
2.调用各组件的方法
1 | <sg-navbar></sg-navbar>//组件1 |
1 | import header from '../components/header.vue' |
3.设置div边框为圆角
1 | border-radius: 10px; |
springsecurity登录流程
RBAC模型
RBAC(Role-Based Access Control)
设置用户表,权限表,角色表
角色表是多权限的集成,可以用来降低冗余
用户可以对应多角色
常用注解
@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造
@Setter : 注在属性上,提供 set 方法
@Getter : 注在属性上,提供 get 方法
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
wrapper.in(对应属性,对应值,对应值)实现多参数查询
单取数组中一个属性用流处理方法简洁
使用sql定义mapper方法
多表联查时Mybatis-Plus已经满足不了需要就需要自定义xml文件定义sql方法
1 | menuDao.selectPermsByUserId(id) |
可以用如两段代码定义
1 | public interface MenuDao extends BaseMapper<Menu> { |
1 |
|
为什么要用xml文件写方法
因为Mybatisplus提供的查询方法只能返回对应表的pojo对象,而关联表是没有用Mybatis生成的,所以需要自己写xml方法映射
如何使用分页查询
1.建立queryWapper对象
2.new一个page对象
3.page.setSize,page.setCurrent
4.page(page,queryWapper)
5.PageVo pageVo = new PageVo(page.getRecords(),page.getTotal());
@Override
public ResponseResult<PageVo> pageTagList(Integer pageNum, Integer pageSize, TagListDto tagListDto) {
//分页查询
LambdaQueryWrapper<Tag> queryWrapper = new LambdaQueryWrapper<>();
//设置查询条件,前面的参数判断是否进行筛选
queryWrapper.eq(StringUtils.hasText(tagListDto.getName()),Tag::getName,tagListDto.getName());
queryWrapper.eq(StringUtils.hasText(tagListDto.getRemark()),Tag::getRemark,tagListDto.getRemark());
Page<Tag> page = new Page<>();
page.setCurrent(pageNum);//设置第几页
page.setSize(pageSize);//设置一页多少个
page(page, queryWrapper);
//封装数据返回
PageVo pageVo = new PageVo(page.getRecords(),page.getTotal());
return ResponseResult.okResult(pageVo);
}
查看端口号并停止应用
服务宗旨
顾客至上&质量保障&价格亲民&快速到货
宝塔打包
1.jar包上传到www/wwwroot/new包下
2.jar包需要在项目根目录下运行
1 | mvn clean install |
3.执行jar包
1 | nohup java -jar xxx.jar > ./demo.log 2>&1 & |
外网面板地址: https://120.77.201.84:32006/332b0c3e
内网面板地址: https://172.30.184.102:32006/332b0c3e
username: qpaxfqpq
password: b1e9c9d6