Spring Boot中的注解

Spring Boot注解

  1. @SpringBootApplication:该注解是一个组合注解包含了@ComponentScan@Configuration@EnableAutoConfiguration注解。

  2. @RestController:注解是@Controller@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。
    ①:@ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般用于构建RESTful的api。加上@Responsebody后,会直接返回Json数据。该注解一般会配合注解@RequestMapping( value = "" )一起使用。
    ②:@Controller:用于定义控制器类,在Spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(Service层),一般这个注解在类中,该注解一般会配合注解@RequestMapping( value = "" )

  3. @RequestMapping:提供路由信息,负责URL到Controller层中的具体函数的映射。

  4. @Service:一般用于修饰Service层的组件。

  5. @Repository:这个注解修饰的DAO或者Repository类会被ComponetScan发现并配置。

  6. @Autowired:自动导入依赖的Bean。

  7. @Import:用来导入其他配置类。

8.@ImportResource:用来加载XML配置文件。

  1. @Bean:用@Bean标注方法等价于XML中配置的Bean。

  2. @Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

Spring Data JPA注解

  1. @Entity@Table( name = "" ):表明这是一个实体类。一般用于JPA这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table也可以省略。

  2. @Column(name = " ",length = " ",nullable = " ",unique = " ",columnDefinition = " "):如果字段名与列名相同,则可以省略。

  3. @Id:表示该属性为主键。

  4. @GeneratedValue(strategy = "",generator = "" ):表示主键生成策略,设置主键的生成策略,这种方式依赖于具体的数据库,如果数据库不支持自增主键,那么这个类型是没法用的。

  5. @GenericGenerator(name = "", strategy = "" ):如果@GeneratedValue注解中主键生成策略中采用的是自定义的主键生成策略,需要配合使用才注解。

  6. @Transient:表示使用该注解的属性并非一个需要持久化到数据库中的字段,ORM框架将忽略该属性。

  7. @JsonIgnore:作用是json序列化时将Java Bean中的一些属性忽略掉,序列化和反序列化都受影响。

  8. @OneToOne、@OneToMany、@ManyToOne:对应Hibernate配置文件中的一对一,一对多,多对一。

  9. @MappedSuperClass:用在确定是父类的Entity上。父类的属性子类可以继承。

  10. @NoRepositoryBean:一般用作父类的Repository,有这个注解,Spring不会去实例化该Repository。

  11. @CreationTimestamp: 创建时自动更新时间。

  12. @UpdateTimestamp: 更新时自动更新时间。

@CreationTimestamp
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;

@UpdateTimestamp
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updateTime;

项目中具体配置解析和使用环境

  1. @MappedSuperclass
    ①:@MappedSuperclass 注解使用在父类上面,是用来标识父类的。
    ②:@MappedSuperclass 标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中。
    ③:@MappedSuperclass 标识的类不能再有@Entity@Table注解。

开源中国 -Spring Boot 2.x基础教程:JSR-303实现请求参数校验

开源中国 -深入理解Spring中的事务原理

开源中国 -SpringMVC请求处理过程

你可能感兴趣的:(Spring Boot中的注解)