Spring Boot注解
@SpringBootApplication
:该注解是一个组合注解包含了@ComponentScan
、@Configuration
和@EnableAutoConfiguration
注解。@RestController
:注解是@Controller
和@ResponseBody
的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。
①:@ResponseBody
:表示该方法的返回结果直接写入HTTP response body中,一般用于构建RESTful的api。加上@Responsebody
后,会直接返回Json数据。该注解一般会配合注解@RequestMapping( value = "" )
一起使用。
②:@Controller
:用于定义控制器类,在Spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(Service层),一般这个注解在类中,该注解一般会配合注解@RequestMapping( value = "" )
。@RequestMapping
:提供路由信息,负责URL到Controller层中的具体函数的映射。@Service
:一般用于修饰Service层的组件。@Repository
:这个注解修饰的DAO或者Repository类会被ComponetScan发现并配置。@Autowired
:自动导入依赖的Bean。@Import
:用来导入其他配置类。
8.@ImportResource
:用来加载XML配置文件。
@Bean
:用@Bean标注方法等价于XML中配置的Bean。@Component
:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
Spring Data JPA注解
@Entity
:@Table( name = "" )
:表明这是一个实体类。一般用于JPA这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table
也可以省略。@Column(name = " ",length = " ",nullable = " ",unique = " ",columnDefinition = " ")
:如果字段名与列名相同,则可以省略。@Id
:表示该属性为主键。@GeneratedValue(strategy = "",generator = "" )
:表示主键生成策略,设置主键的生成策略,这种方式依赖于具体的数据库,如果数据库不支持自增主键,那么这个类型是没法用的。@GenericGenerator(name = "", strategy = "" )
:如果@GeneratedValue
注解中主键生成策略中采用的是自定义的主键生成策略,需要配合使用才注解。@Transient
:表示使用该注解的属性并非一个需要持久化到数据库中的字段,ORM框架将忽略该属性。@JsonIgnore
:作用是json序列化时将Java Bean中的一些属性忽略掉,序列化和反序列化都受影响。@OneToOne、@OneToMany、@ManyToOne
:对应Hibernate配置文件中的一对一,一对多,多对一。@MappedSuperClass
:用在确定是父类的Entity上。父类的属性子类可以继承。@NoRepositoryBean
:一般用作父类的Repository,有这个注解,Spring不会去实例化该Repository。@CreationTimestamp
: 创建时自动更新时间。@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;
项目中具体配置解析和使用环境
-
@MappedSuperclass
:
①:@MappedSuperclass
注解使用在父类上面,是用来标识父类的。
②:@MappedSuperclass
标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够映射在其子类对用的数据库表中。
③:@MappedSuperclass
标识的类不能再有@Entity
或@Table
注解。