欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot常用注解(绝对经典)

程序员文章站 2022-03-11 09:11:40
一、Spring常用注解Spring常用注解(绝对经典)二、Jpa1、@Entity ,@Table(name="")表明这是一个实体类,一般用于jpa,这两个注解一块使用,但是如果表名和实体类名相同的话,@Table可以省略。2、@MappedSuperClass基于代码复用和模型分离的思想,在项目开发中使用jpa的@MappedSuperClass注解,将实体类的多个属性分别封装到不同的非实体类中。例如,数据库表中都需要id来表示编号,id是这些映射实体类的通用属性,交给jpa统...

Spring Boot常用注解(绝对经典)

一、什么是Spring Boot

Spring Boot是一个快速开发框架,快速的将一些常用的第三方依赖整合(通过Maven子父亲工程的方式),简化xml配置,全部采用注解形式,内置Http服务器(Jetty和Tomcat),最终以Java应用程序进行执行。

二、Spring常用注解

Spring常用注解(绝对经典)

三、Jpa

1、@Entity ,@Table(name="")

表明这是一个实体类,一般用于jpa,这两个注解一块使用,但是如果表名和实体类名相同的话,@Table可以省略。

2、@MappedSuperClass

基于代码复用和模型分离的思想,在项目开发中使用jpa的@MappedSuperClass注解,将实体类的多个属性分别封装到不同的非实体类中。例如,数据库表中都需要id来表示编号,id是这些映射实体类的通用属性,交给jpa统一生产主键id编号,那么使用一个父类来封装这些通用属性,并用@MappedSuperClass标识。

注意:

  • 标注为@MappedSuperClass的类将不是一个完整的实体类,它将不会映射到数据库表,但是它的属性都映射到其子类的数据库字段中。
  • 标注@MappedSuperClass的类不能再标注@#Entity或@Table注解,也无需实现序列化接口。

3、@NoRepositoryBean

一般用做父类的repository,有这个注解,spring不会去实例化该repository。

4、@Column

如果字段名和列名相同,则可以省略。

5、@Id

表示该属性为主键。

6、@Transient

表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。

如果一个属性并非数据库表的字段映射,就务必将其标注为@Transient,否则,ORM框架默认将其注解为@Basic。

7、@Basic

@Basic 是实体类与数据库字段映射时最简单的类型。

类型支持Java基本类型(byte、short、int、long、float、double、char、boolean),包装类,枚举类,以及实现了serializable接口的类型。

@basic注解有两个属性:

  • fetch用来指定属性的加载机制

有两个选项:EAGER(即时加载,默认值)和LAZY(懒加载),即时加载意味着当实例化对象的时候必须加载该属性值,懒加载是指当实例化对象时不加载该对象,只有当调用该属性时才加载。

  • optional用来指定属性是否可空

有两个选项:true(可空,默认值)和false

如果你的实体类上不加@Basic注解,它也会自动加上@Basic,并使用默认值。

8、@JsonIgnore

在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口。

Bean实体中会有某些运维字段,返回信息给前台的时候,不希望将对应值一并返回。此时可以在对应属性上加上@JsonIgnore,或者可以在User类上加上注解@JsonIgnoreProperties(value="{password}")

9、@JoinColumn、@OneToOne、@OneToMany、@ManyToOne

四、导入配置文件

1、@PropertySource

引入单个properties文件:

@PropertySource(value = {"classpath:xxxx/xxxx.properties"})

引入多个properties文件

@PropertySource(value = {"classpath:xxxx/xxxx.properties","classpath:xxxx/xxxx.properties"})

2、 @ImportResource导入xml配置文件

可以分为两种模式,相对路径的classpath,绝对路径的file。

注意:单文件可以不写value或locations。

取值:使用@Value注解取配置文件中的值

@Value("${properties中的键}")

private String xxx;

3、@Import导入额外的配置文件

功能类似XML配置的,用来导入配置类,可以导入带有@Configuration注解的配置类或实现了ImportSelector/ImportBeanDefinitionRegistrar。

@SpringBootApplication
@Import({SmsConfig.class})
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

五、事务注解

@Transactional

在Spring中,事务有两种实现,分别是编程式事务和声明式事务。

编程式事务:

编程式事务使用TransationTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务,spring推荐使用TransationTemplate。

声明式事务:

建立在AOP基础上,其本质是对方法前后进行拦截,然后再目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用。

六、Spring Cloud

1、@EnableEurekaServer

用在springboot启动类上,表示这是一个eureka服务注册中心;

2、@EnableDiscoveryClient

用在springboot启动类上,表示这是一个服务,可以被注册中心找到;

3、@LoadBalanced

开启负载均衡能力;

4、@EnableCircuitBreaker

用在启动类上,开启断路器功能;

5、@HystrixCommand(fallbackMethod=”backMethod”)

用在方法上,fallbackMethod指定断路回调方法;

6、@EnableConfigServer

用在启动类上,表示这是一个配置中心,开启Config Server;

7、@EnableZuulProxy

开启zuul路由,用在启动类上;

8、@SpringCloudApplication

  • @SpringBootApplication
  • @EnableDiscovertyClient
  • @EnableCircuitBreaker

分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。对于SpringCloud来说,这是每一微服务必须应有的三个注解,所以才推出了@SpringCloudApplication这一注解集合。

 

上一篇:【全栈最全Java框架总结】SSH、SSM、Springboot

下一篇:  超详细的springBoot学习笔记

本文地址:https://blog.csdn.net/guorui_java/article/details/107379648

相关标签: Spring Boot