spring mvc 注解、属性小结

常用属性

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 一起使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值