常用属性
value属性
value 属性是 @RequestMapping 注解的默认属性,因此如果只有 value 属性时,可以省略该属性名,如果有其它属性,则必须写上 value 属性名称。
@RequestMapping(value="user")
@RequestMapping("user")
path属性
同value属性一样用法。
name属性
name属性相当于方法的注释,使方法更易理解。
@RequestMapping(value = "user",name = "用户操作")
method属性
method 属性用于表示该方法支持哪些 HTTP 请求。如果省略 method 属性,则说明该方法支持全部的 HTTP 请求。
// 只支持 GET 请求
@RequestMapping(value = "selectAllUser",method = RequestMethod.GET)
// 指定支持多个 HTTP 请求,该方法同时支持 GET 和 POST 请求。
@RequestMapping(value = "checkUser",method = {RequestMethod.GET,RequestMethod.POST})
params属性
params 属性用于指定请求中规定的参数。
// 请求中必须包含 type 参数时才能执行该请求
@RequestMapping(value = "selectAllUser",params = "type")
public String toUser() {
return "userList";
}// 请求中必须包含 type 参数,且 type 参数值为 1 时才能够执行该请求
@RequestMapping(value = "selectAllUser",params = "type=1")
public String toUser() {
return "userList";
}
常用注解
@Entity
必选的注解,声明这个类对应了一个数据库表。
@Component
可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件,并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可。
@Repository
用于将数据访问层(DAO层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
@Service
通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
@Controller
必选的注解,声明这个类对应了一个数据库表。
@Autowired
1、自动装配,就是指 Spring 容器在不使用
<constructor-arg>
和<property>
标签的情况下,可以自动装配(autowire)相互协作的 Bean 之间的关联关系,将一个 Bean 注入其他 Bean 的 Property 中。2、自动装配只需要较少的代码就可以实现依赖注入。但不能自动装配简单数据类型,比如 int、boolean、String 等,相比较显式装配,自动装配不受程序员控制。
3、@Autowired注解可以应用到 Bean 的属性变量、属性的 setter 方法、非 setter 方法及构造函数等,配合对应的注解处理器完成 Bean 的自动配置工作。默认按照 Bean 的类型进行装配。
@Data
提供了get、set方法
@AllArgsConstructor
提供了有参构造方法
@NoArgsConstructor
提供了无参构造方法
@Value
@Autowired注入另外的bean,而@Value注解则是注入值。由于在java源代码中注入常量值会带来硬编码问题,该注解使用较少。
@MappedSuperclass
标识基类(父类),不能有 @Entity 和 @Table,子类会自动映射父类属性。
@Table(name = "user")
可选的注解,声明了实体对应的表信息,包括表名称、索引等,如果没有指定,则表名和实体的名称保持一致。
@Id
声明实体唯一标识对应的属性。
@Column
@Column(name = "card_no", length = 33, unique = true, columnDefinition="varchar(128) not null") ---- 声明实体 Bean 属性对应列,默认每个属性都对应了表的一列,列名默认驼峰转下划线,列的类型根据实体属性类型自动推断,默认长度 255,也可自定义列类型。
@Transient
声明该属性不参与和数据库的映射。
@PrePersist
声明该方法在 Hibernate Insert Bean 之前调用,例如设置 createDate 属性。
@CreatedDate | @LastModifiedDate
创建时间和最后更新时间,需要在类上添加 @EntityListeners(AuditingEntityListener.class) 注解,并在 Spring Boot 启动类上添加 @EnableJpaAuditing 注解。
@OneToOne,@OneToMany,@ManyToMany,@ManyToOne
1、一对一关系中,有外键方使用 JoinColumn 注解,另一方使用 mappedBy 属性;
2、一对多关系中,多方使用 JoinColumn 注解,会产生外键,一方使用 mappedBy 属性;
3、多对多关系中,一方使用 JoinTable 注解,标识中间表,并标明两个关联表的主键,另一方使用 mappedBy 属性。
@persistencecontext
该注解是一个用来操作实例化对象与进行数据持久化的一个注解,它实际上是在内存中保存了一些实体类对象实例所构成的一些集合,它能够根据实体类状态的变化,完成持久化操作,该注解与 EntityManager 一起使用。