IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【项目一笔记】 -> 正文阅读

[Java知识库]【项目一笔记】

GITEE第三方登录

1.gitee准备,在gitee页面,拉到最底下,点击openAPI,然后点击查看oauth文档,学习学习。然后在gitee 设置,在左边菜单栏找到第三方应用,随后创建应用。
编辑 应用名称,应用主页(),应用回调地址(http://localhost:8080/callback),权限(user_info)
2.代码,在登陆页面,给a标签【登陆】添加链接th:href="@{https://gitee.com/oauth/authorize(client_id='c liendID在gitee获取',redirect_uri=${#httpServletRequest.getScheme() + '://' + #httpServletRequest.getServerName() + ':' + #request.getServerPort()+'/callback'},response_type='code',scope='user_info',state=1)}"
其中的redirect_uri是thymeleaf写法,解释为获取项目的域名和端口。如果是本机上开发和测试也可以写成localhost:8080/callback。然后根据gitee传回的参数,在controller写一个/callback路由的方法。里面内容为获取gitee传过来的用户信息,然后封装,保存到数据库的user表里。

generator自动生成model与mapper

拦截器(拦截未登录用户)

1.新建类WebConfig(@Configuration)实现WebMvcConfigurer,然后重写addInterceptors方法,然后往里添加一个拦截器sessionInterceptor(自定义的)

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private SessionInterceptor sessionInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(sessionInterceptor)
                .addPathPatterns("/**");
    }
}

2.新建类SessionInterceptor(@service)实现HandlerInterceptor的三个方法,
boolean preHandle里编写,内容为,从request里获取cookie,从cookie里获取token,然后根据该token去数据库查user,将user放到session里

几种stream流写法

//获取去重的评论人IDs
        Set<Long> commentators = comments.stream().map(comment -> comment.getCommentator()).collect(Collectors.toSet());
        List<Long> ids = new ArrayList<>();
        ids.addAll(commentators);
        //获取评论人
        UserExample userExample = new UserExample();
        userExample.createCriteria()
                .andIdIn(ids);
        List<User> users = userMapper.selectByExample(userExample);
        Map<Long, User> userMap = users.stream().collect(Collectors.toMap(user -> user.getId(), user -> user));
        //转换cmment为DTO
        List<CommentDTO> commentDTOS = comments.stream().map(comment -> {
            CommentDTO commentDTO = new CommentDTO();
            BeanUtils.copyProperties(comment, commentDTO);
            commentDTO.setUser(userMap.get(comment.getCommentator()));
            return commentDTO;
        }).collect(Collectors.toList());
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-19 18:23:31  更:2021-12-19 18:23:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:23:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码