栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【项目一笔记】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【项目一笔记】

论坛项目笔记
  • GITEE第三方登录
  • generator自动生成model与mapper
  • 拦截器(拦截未登录用户)
  • 几种stream流写法

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 commentators = comments.stream().map(comment -> comment.getCommentator()).collect(Collectors.toSet());
        List ids = new ArrayList<>();
        ids.addAll(commentators);
        //获取评论人
        UserExample userExample = new UserExample();
        userExample.createCriteria()
                .andIdIn(ids);
        List users = userMapper.selectByExample(userExample);
        Map userMap = users.stream().collect(Collectors.toMap(user -> user.getId(), user -> user));
        //转换cmment为DTO
        List commentDTOS = comments.stream().map(comment -> {
            CommentDTO commentDTO = new CommentDTO();
            BeanUtils.copyProperties(comment, commentDTO);
            commentDTO.setUser(userMap.get(comment.getCommentator()));
            return commentDTO;
        }).collect(Collectors.toList());
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号