Spring Boot注解
@SpringBootApplication:該注解是一個(gè)組合注解包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。@RestController:注解是@Controller和@ResponseBody的合集,表示這是個(gè)控制器bean,并且是將函數(shù)的返回值直 接填入HTTP響應(yīng)體中,是REST風(fēng)格的控制器。
①:@ResponseBody:表示該方法的返回結(jié)果直接寫入HTTP response body中,一般用于構(gòu)建RESTful的api。加上@Responsebody后,會(huì)直接返回Json數(shù)據(jù)。該注解一般會(huì)配合注解@RequestMapping( value = "" )一起使用。
②:@Controller:用于定義控制器類,在Spring項(xiàng)目中由控制器負(fù)責(zé)將用戶發(fā)來的URL請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的服務(wù)接口(Service層),一般這個(gè)注解在類中,該注解一般會(huì)配合注解@RequestMapping( value = "" )。@RequestMapping:提供路由信息,負(fù)責(zé)URL到Controller層中的具體函數(shù)的映射。@Service:一般用于修飾Service層的組件。@Repository:這個(gè)注解修飾的DAO或者Repository類會(huì)被ComponetScan發(fā)現(xiàn)并配置。@Autowired:自動(dòng)導(dǎo)入依賴的Bean。@Import:用來導(dǎo)入其他配置類。
8.@ImportResource:用來加載XML配置文件。
@Bean:用@Bean標(biāo)注方法等價(jià)于XML中配置的Bean。@Component:泛指組件,當(dāng)組件不好歸類的時(shí)候,我們可以使用這個(gè)注解進(jìn)行標(biāo)注。
Spring Data JPA注解
@Entity:@Table( name = "" ):表明這是一個(gè)實(shí)體類。一般用于JPA這兩個(gè)注解一般一塊使用,但是如果表名和實(shí)體類名相同的話,@Table也可以省略。@Column(name = " ",length = " ",nullable = " ",unique = " ",columnDefinition = " "):如果字段名與列名相同,則可以省略。@Id:表示該屬性為主鍵。@GeneratedValue(strategy = "",generator = "" ):表示主鍵生成策略,設(shè)置主鍵的生成策略,這種方式依賴于具體的數(shù)據(jù)庫,如果數(shù)據(jù)庫不支持自增主鍵,那么這個(gè)類型是沒法用的。@GenericGenerator(name = "", strategy = "" ):如果@GeneratedValue注解中主鍵生成策略中采用的是自定義的主鍵生成策略,需要配合使用才注解。@Transient:表示使用該注解的屬性并非一個(gè)需要持久化到數(shù)據(jù)庫中的字段,ORM框架將忽略該屬性。@JsonIgnore:作用是json序列化時(shí)將Java Bean中的一些屬性忽略掉,序列化和反序列化都受影響。@OneToOne、@OneToMany、@ManyToOne:對(duì)應(yīng)Hibernate配置文件中的一對(duì)一,一對(duì)多,多對(duì)一。@MappedSuperClass:用在確定是父類的Entity上。父類的屬性子類可以繼承。@NoRepositoryBean:一般用作父類的Repository,有這個(gè)注解,Spring不會(huì)去實(shí)例化該Repository。@CreationTimestamp: 創(chuàng)建時(shí)自動(dòng)更新時(shí)間。@UpdateTimestamp: 更新時(shí)自動(dòng)更新時(shí)間。
@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;
項(xiàng)目中具體配置解析和使用環(huán)境
-
@MappedSuperclass:
①:@MappedSuperclass注解使用在父類上面,是用來標(biāo)識(shí)父類的。
②:@MappedSuperclass標(biāo)識(shí)的類表示其不能映射到數(shù)據(jù)庫表,因?yàn)槠洳皇且粋€(gè)完整的實(shí)體類,但是它所擁有的屬性能夠映射在其子類對(duì)用的數(shù)據(jù)庫表中。
③:@MappedSuperclass標(biāo)識(shí)的類不能再有@Entity或@Table注解。
開源中國 -Spring Boot 2.x基礎(chǔ)教程:JSR-303實(shí)現(xiàn)請(qǐng)求參數(shù)校驗(yàn)