VBlog项目代码理解之后端

本文介绍了VBlog项目的后端代码,涵盖了资源、Bean、Mapper、Service、Config、Controller和Resources等方面。项目使用SpringBoot、Vue、Mybatis和ElementUI,适合初学者练习。重点讲解了Bean中的关键方法、Mapper的动态SQL操作、Service的实现以及Spring Security的配置。同时,提到了Controller的权限管理和前后端交互的注意事项。
摘要由CSDN通过智能技术生成


VBlog项目代码理解之后端

资源

项目地址
前后端交互代码理解
前端代码理解
推荐:整个项目几乎是只用到了SpringBoot、Vue、Mybatis、ElementUI,没有用到Redis、RabbitMQ等内容,很适合刚学完SpringBoot和Vue的同学练手,感谢作者!帮作者打个广告吧~
在这里插入图片描述
PS:这是本人第一个学习的项目,难免会有错误的地方,哪里有问题烦请指正,感谢!


因为主要学的后端,之前也练过图书管理系统,所以没什么好详细记录的,就是有些Mybatis操作还不熟悉。


Bean

很多bean类,但只有User类实现了UserDetailsUserDetailsUserDetailsService在下面的Spring Security有介绍),其他的类都通过id等方式和User绑定。
要特别注意的方法就是getAuthorities()
还用@JsonIgnore注释了一些重载方法,注意中间isEnabled()没有用这个注释

    @Override
    @JsonIgnore
    public boolean isAccountNonExpired() {
   
        return true;
    }

    @Override
    @JsonIgnore
    public boolean isAccountNonLocked() {
   
        return true;
    }

    @Override
    @JsonIgnore
    public boolean isCredentialsNonExpired() {
   
        return true;
    }

    @Override
    public boolean isEnabled() {
   
        return enabled;
    }

    public void setEnabled(boolean enabled) {
   
        this.enabled = enabled;
    }

    @Override
    @JsonIgnore
    public List<GrantedAuthority> getAuthorities() {
   
        List<GrantedAuthority> authorities = new ArrayList<>();
        for (Role role : roles) {
   
            authorities.add(new SimpleGrantedAuthority("ROLE_" + role.getName()));
        }
        return authorities;
    }

Mapper

就是一些基础方法的组合
迷惑

  • 分页:

        <!--状态与权限的搜索,为啥还限制了分页?-->
        <select id="getArticleByStateByAdmin" resultType="org.sang.bean.Article">
            SELECT a.id,a.`title`,a.`editTime`,a.`pageView`,a.`state`,u.`nickname`,c.`cateName`,a.uid FROM article a,user
            u,category c WHERE a.`cid`=c.`id` AND a.`uid`=u.`id` and a.state=1
            <if test="keywords!=null">
                AND title LIKE concat('%',#{keywords},'%')
            </if>
            ORDER BY a.editTime DESC limit #{start},#{count};
        </select>
        <select id="getArticleCountByState" resultType="int">
            SELECT count(*) FROM article
            <where>
                <if test="state!=-1">
                    AND state=#{state}
                </if>
                <if test="uid!=null">
                    AND uid=#{uid}
                </if>
                <if test="keywords!=null">
                    AND title LIKE concat('%',#{keywords},'%')
                </if>
            </where>
        </select>
    
  • 奇怪的LEFT、JOIN、ON

        <!--啊!LEFT JOIN ON是啥-->
        <select id="getArticleById" parameterType="Long" resultMap="BaseResultMap"
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值