对于自己代码的理解附加源码
user的源码:



package com.fruitol.entity;中package是用于声明user这个类所属的包。这样操作便于管理属性相同的类以及接口。
`import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fruitol.security.CustomAuthority;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;****`这一些import开头的代码是为了导入一个特定的类。
@TableName("user")中@TableName的作用是一个注解,注解这个实体类user所对应的数据库表‘user’。括号中的反引号是为了避免引用错误。
public class User implements UserDetails, Serializable:
public:是一个访问修饰符,用于修饰“user”这个实体类的,表示这个类是公开的类,并且每一个代码文件中有且仅有一个public类。
class:用于声明user这个新的实体类,而并非为一个接口或者是枚举。
implements:用于实现接口,表示在User这个实体类中实现UserDetails, Serializable这2个接口中的方法
@TableId(type = IdType.AUTO)
@TableId:这是一个注释,用于标识实体类中哪个字段对应数据库User中的主键
type = IdType.AUTO:IdType.AUTO 表示主键的生成策略是数据库的自增,当插入一个数据时数据库会自动生成一个递增的值作为这个数据的主键
private Long id;
private String username;
private String password;
private String phone;
private String email;
private String role = "USER";
private boolean enabled = true;
private static final long serialVersionUID = 1L;
private Collection
private:这是一个访问修饰符,用于限制这个字段的访问对象,好处:可以让password这些字段私有化保证安全性。
private后跟的字段为数据库中数据的类型以及数据字段的名字。
private static final long serialVersionUID = 1L:这个代码段的作用是为了控制序列化版本。
`@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return authorities != null ? authorities : Collections.emptyList();
}
public void setAuthorities(Collection
this.authorities = authorities;
}
@Override:这是一个注解,帮助编译器确认下面的代码实现了父类中的方法并且提高代码的可读性。这里表示getAuthorities()这个方法覆盖了父类或者是接口中实现的方法,如果没有这个注释编译器就会认为没有这个方法从而实现一个新的方法,而不是去覆盖就会导致编译错误。
Collection:这是一个集合接口

浙公网安备 33010602011771号