Spring Boot启动类
注解名 | 简介 |
---|
@SpringBootApplication | 是springboot启动类 |
@EnableDiscoveryClient | 其他服务发现组件,例如Zookeeper、Consul等 |
@EnableEurekaClient | 基于spring-cloud-netflix,如果选用的注册中心是eureka,那么就使用@EnableEurekaClient |
@EnableAutoConfiguration | 表示会在你开启某些功能的时候自动配置,这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于Spring-boot-stater-web添加了Tomcat和Spring Mvc ,所以auto-configuration将假定你在开发一个web应用,并对Spring进行相应地设置 |
@EnableTransactionManagement | 启动注解事务管理,等同于xml配置方式tx:annotation-driver/开启事务知耻后,然后子范文数据库的Service方法上添加注解@Transaction 便可 |
@MapperScan | 可以指定要扫描的类的包的路径如:(@MapperScan(“com.demo*.mapper”)) |
@EntityScan | 用于三秒JPA实体类 |
@EnableScheduling | 开启定时器 |
@ComponentScan | 如果不设置basePackage参数会默认扫描所有类,最好写上basePackage |
@EnableHystrix | 表示启动段力气,断路器依赖于服务注册和发现 |
@EnableEurekaServer | Spring Cloud Netflix Eureka项目将Netflix公司的Eureka项目加以封装,以适配Spring Boot自动化配置的机制,通过注解在Spring Boot项目启动时启动Eureka Server |
常用注解
注解名 | 简介 |
---|
@Configuration | 表示这个类中定义了Bean,会把这个类中bean加载到spring容器中 |
@Mapper | 要求每一个mapper类都要添加此注解 |
@Async | 意思是可以异步执行,就是开启多线程的意思。可以标注在方法,类上。为了让@Async注解能够生效,需要在Spring Boot的主程序中配置@EnableAsync |
@Bean | 标注在方法上,返回某个实例的方法,等价于Spring的xml配置文件中的,作用:注册bean对象 |
@GetMapping | Spring4.3引进@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping,来帮助简化常用的HTTP方法的映射,是@RequestMapping(method=RequestMethod.GET)的缩写。该注解将HTTP Get映射到特定的处理方法上 |
@LoadBalanced | Spring Cloudd的commons模块提供了一个@LoadBalanced注解,方便问哦们对RestTemplate添加一个LoadBlandcerClient,以实现客户端负载均衡。通过源码可以发现这是一个标记注解,我们可以通过ribbon实现客户端负载均衡功能 |
@Value | 为了简化从properties里取配置,可以使用@value |
@Primary | Zion给装配时出现多个Bean候选者,被注解为@primary的Bean将作为首选者 |
@Qualifier | 可以手动指定按byName方式注入 |
@Resource | 默认按byName自动注入,如果找不到再按byTypr找bean,如果还找不到则抛出异常,无论按照byName还是byTyper如果找到多个,则抛出异常 |
@Signleton | 只要在类上加上这个注解,就可以实现一个单例模式,不需要自己手动编写单例实现类 |
@NotBlank | 检查约束字符串是不是Null还有被Tim的长度是否大于0,支队字符串且去掉前后空格 |
@Size | @Size(min=,max=) 验证对象(Array,Collection,Map,String)航都是否在给定的范围内 |
@Email | 验证是否是邮箱,如果为null,不进行验证,算通过验证 |
@RequestBody | @RequestBody(required=true) 默认属性required=true,当bodu里没内容时抛出异常, |
@Target | 用于描述注解的使用范围,即@Target(ElementType.ANNOTATION_TYPE)被描述注解可以用在什么地方 |
@Retention | 作用是定义被它所注解的注解保留多久 ,一共有三种策略,定义在RetentionPolicy枚举中.从注释上看:source:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;被编译器忽略 class:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期 runtime:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在这3个生命周期分别对应于:Java源文件(.java文件) —> .class文件 —> 内存中的字节码。 |
@Log4j | 对于@Slf4j |
@CrossOrgin | 是Cross-Orgin ResourceSharing(苦于啊资源共享的缩写),作用:解决跨域访问的问题 |
@RequestParam | 作用是提取和解析请求中的参数。支持类型转换,类型转换目前支持所有的基本java类型 |
@Repository | @Controller,@Compent@Service,@Repositoy为了更好的区分各自功能 |
@PropertySource | |
@PathVariable | 处理requet uri部门,当使用@RequestMapping URL template 样式映射是,及someUrl/{paramId},这时的paramId 可用过@PathVariable |
@RequestHeader | 处理request header 部分的注解,将头部信息绑定到方法参数上 |
@Scope | 默认是单例模式,即(@Scope(“singleton”)),即容器里只有一个实例对象.protorype:多例,每个request请求都会创建一个实例 |
@RestController | @RestController=@Controoller+@ResponseBody。是两个注解的合并写过,即指定了该controller是组件,又指定方法 |
@Aspect | 切面配置支持,Spring Boot 引入了 Aop启动器的话不需要开启 |
@Transactional | @Transactional(readOnly=true),注解事务 |
@HystixCommand | 注解方法失败后,系统将西东切换到fallbackMethod方法指定 |
@FeignClient | 注解中的fallback指定回调类 |
@Synchronized | 给线程增加同步锁 |
实体类注解
注解名 | 简介 |
---|
@Entity | 标注为实体类 |
@Table | @Table(name="") 注解在类上表明这是一个实体。一般用于jpa注解一起使用,如果是表明和实体类名相同,@Table可以省略 |
@Cloumn | 通过Cloumn注解设置,包含的设置如下 name:数据库字段名,unique:是否唯一 nullable: 是否可以为空 Length: 长度 |
@Id | 表示该属性为主键 |
@Temporal | @Temporal(Type.DATE)private Date date; 设置时间类型 |
@Transient | 表示该属性并非一个到数据库字段的映射,ORM将忽略该属性 |
@Basic | |
@JoinCloumn | @JoinCloumn(name=“loginLd”) 一对一:表中只想另一个表的外键。一对多:另一个表只想本表的外键 |
@OneToOne@OneToMan@ManyToOne | :对应hibenate配置文件中一对一,一对多,多对一 |
@GeneratedValue | 用于标注主角按的生成册罗,通过strategy属性指定,默认情况下,jpa自动选择一个最合适底层数据库的主键生成策略:SqlServer 对应 identity,MySQL 对应 auto increment。 在 javax.persistence.GenerationType 中定义了以下几种可供选择的策略:IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;AUTO: JPA自动选择合适的策略,是默认选项;SEQUENCE:通过序列产生主键,通过 @SequenceGenerator 注解指定序列名,MySql 不支持这种方式TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。 |
Mybatis Plus注解
注解类包 mybatis-plus-annotation
注解名称 | 描述 |
---|
@TableName | 表明注解,属性 value:表明 schema:schema(@since 3.1.1) keepGlobalPrefic: 是否保持使用全局的tablePrefix 的值 如果设置了全局tablePrefix 且自行设置了 value 的值 |
@resultMap | xml中resultMap id |
@autoResultmap | 是否自动构建resultMap并使用 |
@tableId | 主键注解 value:主键字段名 type:主键类型,idType Auto:数据库自增 INPUT: 自行输入 ID_WORKER:分布式全部唯一ID 长整型类型 UUID 32位UUID字符集 NoNE:无状态 ID_WORKER_STR:分布式全局唯一ID 字符集串类型 |
@TableFied | 字段注解(非主键) value: 字段名 exist: 是否为数据库表字段 select:是否进行瑟勒图 查询 |
@Version | 乐观锁注解 标记在字段上 |
@EnumValue | 通枚举类型注解在枚举字段上 |
@TableLogic | 表字段逻辑处理注解(逻辑删除) |
@KeySequence | 序列主键策略 oracle value: 序列名 clazz: id的类型 可以指定SString.class这样的返回Sequence值是字符串"1" |
| |
Lombok注解
注解名称 | 描述 |
---|
@NoargsConstructor | 生成一个无参构造方法 |
@AllArgsContructor | 生成一个有参构造方法 |
@RequiredArgsConstructor | 生成一个包含常量,和标识了NotNull的变量构造方法。生成的构造方法是私有的Private |