一,通用注解
@Override//重写
@After//类内方法最后运行
@Before//类内方法最后运行
@Test //测试
@JsonSerialize(using = CustomDateSerializer.class)//用于json数据格式在网页
上显示时由long基本类型转为指定类型的时间格式转换,以上的
CustomDateSerializer指的自己定义的格式转换类
@RequestParam(value="page",required = false,defaultValue = "1") Integer page//
表示在页面数据传递时,对于page字段设置非必须以及默认值为1
@Data//作用是简化代码,在实体类上无序构造方法,set,get方法,以及tostring,需要
@WebServlet("AjaxUsera")//标示前端页面跳转路径Url
二,Spring
@Controller//用于标注控制层组件,
@Service//用于标注业务层组件,一般指ServiceImpl
@Repository//用于标注数据访问组件,即DAO组件,一般指DaoImpl
@Component//泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Autowired//不需要getter()和setter()方法,Spring也会自动注入//自动装配,其
可以对类成员变量、方法及构造函数进行标注,
// 完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。
@RequestMapping("list")//一般用于Controller中,表示页面请求所跳转的Url
@PostMapping("doLogin")//表示请求方式post,以及路径Url
@ResponseBody //返回的对象封装成json
@RequestBody//将json转化为实体类
三,mybatis/mybatis-plus注解
@TableName("goods")//在实体类上,用于mybatis-plus自动匹配实体类对应的goods表
@Param//在mybatis的dao层中传多个参数,用于标示Mapper文件中所对应获取的值得名
四,hibernate注解
@Entity//说明这个class是实体类,并且使用默认的orm规则,即class名即数据库
表中表名,class字段名即表中的字段名
@Table来改变class名与数据库中表名的映射规则,、
@Column来改变class中字段名与db中表的字段名的映射规则
@Id//注明主键
@GeneratedValue(strategy = GenerationType.IDENTITY)//为一个实体生成一个
唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主
键),@GeneratedValue提供了主键的生成策略。
@ManyToMany(cascade =CascadeType.ALL,fetch=FetchType.LAZY)//
@JoinTable(
name="role_resource",
joinColumns = {@JoinColumn(name="rid")},//本表中的主键
inverseJoinColumns = {@JoinColumn(name="roleId")}//另一张表中的主键
)
private Set<Role> roleSet=new HashSet<Role>();
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="abc")//另一张表的外键
private Set<User> userSet=new HashSet<User>();
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="typeId")//另一张表的外键
private Type type;
@org.hibernate.annotations.Cache(region ="simple",usage =
CacheConcurrencyStrategy.READ_ONLY)//用在实体类上,注明hibernate二级缓存机制
@Transient//表示在hibernate中实体类对应表格的某一对应字段,可以忽略对应
表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
@Pattern(regexp = "^[0-9]//.[0-9]//.[0-9]$",message = "格式输入不正确,正确的格式为:1.0.0")
放于实体类字段上,表示从数据库传过来的数据必须与对应格式匹配,为后端数据验证