一般注解
@PostConstruct
标注到Springboot初始化就执行的方法,需要类上有@Component等注解
@SpringBootApplication
标注该类是主程序,包括下边三个注解
@Configuration表示将该类作用为springboot配置文件类@EnableAutoConfiguration:程序启动时,自动加载springboot默认的配置。@ComponentScan表示程序启动时,自动扫描当前包及子包下所有类。
@Autowired
从容器中找该类型的变量进行赋值。注释类,方法,变量
@CrossOrigin
允许跨域.常用属性值:
origins:允许访问的域列表->http://domain2.commaxAge准备响应前的缓存持续的最大时间,单位为秒
@Profile
使指定的类或方法在特定的Profile环境生效,参考链接
@ImportResource
用来加载xml的bean
1 | ({"classpath *:applicationContext.xml"}) |
@Import
将类注入到容器中
容器标识
@Component
用来标识一个组件
@Repository
用来标注dao(存储/持久)层组件,创建一个这个名字的实例到容器中
@Service
用来标注service(业务)层组件,创建一个实例到容器中
@Controller
用来标注controller(控制)层组件,可以在@RequestMapping中返回html页面
@Configuration
定义配置类,可替换xml文件,等价于<Beans></Beans>
不可修饰final类型;不可修饰匿名类;嵌套的@configuration必须是静态类
@Bean
标注在方法上,等价于<Bean></Bean>,可以使用return.有属性,get,set和业务逻辑
@Scope
用于定义作用域.常用属性值
singleton单例模式prototype原型模式,每次返回一个新的实例request每次http请求创建一个新的bean,当前request有效session每次http请求创建一个新的bean,当前session有效global session
@ConfigurationProperties
用于读取配置文件.常用属性值:
prefix键的前缀locations文件的位置
Restful常用
@RestController
是@ResponseBody和@Controller的组合注解。加了可以直接返回字符数据,不返回index页面。可参考该链接
@ResponseBody
标识返回JSON等字符数据
@RequestMapping
用于映射url。常用属性有
value指定访问urlmethod指定GET或POST访问(RequestMethod.GET)produces设置返回值类型还可以设定返回值的字符编码consumes指定处理请求的提交内容类型(Content-Type)
@PathVariable
将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)
1 |
|
@RequestBody
获取非application/x-www-form-urlencoded请求的数据。
application/jsonapplication/xml
JSON可以直接解析为List<Map<String, String>>
具体可以参考如下
@RequestParam
获取application/x-www-form-urlencoded请求的数据。可用于GET POST DELETE等, 常用属性有
required表示是否必须,默认为 true,必须。defaultValue可设置请求参数的默认值。value为接收url的参数名(相当于key值)
异步任务
@EnableAsync
标记在类上,开启异步任务.主类即可
@Async
标记在方法上,为异步任务。
定时任务
@EnableScheduling
开启定时任务.标记主类即可
@Scheduled
标记定时任务.常用属性值:
fixedDelay方法执行间隔。上次未执行完,下一次不执行。执行完后间隔指定时间再次执行fixedRate方法执行间隔。上次未执行完,下一次不执行。记录阻塞过程中应该执行的次数。不阻塞时一口气执行完,再按原时间执行。corn可以定制执行任务时间。其他与fixedDelay相同initialDelay启动时延迟指定时间启动延迟10s,然后每隔15秒执行。参考连接JAVA1
Jackson
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
用于接收表单键值对的日期格式化时间,转为Date
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
用于出参格式化时间为JSON
上边两个注解的作用可以参考1和2
@JsonProperty(value=”name”)
把该属性的名称序列化为另外一个名称
@JsonIgnore
用来标识不想传递给前台的属性注: Jackson其他注解
事务相关
@EnableTransactionManagement
开启事务支持
@Transactional
注释到方法,使其支持事务。
Lombok
@Getter
自动生成属性的getter方法
@Settter
自动生成属性的setter方法
@ToString
自动生成类的toString方法
Swagger中的注解
参考这里
@ EnableSwagger2
用于开启Swagger2
@Api
用在请求的类上,对类的说明.常用属性:
tags说明该类的作用,可以在UI界面上看到的注解
@ApiOperation
用来构建API文档,放到方法上.常用属性
value接口说明httpMethod接口请求方式response接口返回参数类型notes接口发布说明
@ApiImplicitParam
指定一个请求参数的各个方面.常用属性:
name参数名value参数的汉字说明、解释required参数是否必须传paramType参数放在哪个地方path以地址的形式提交数据query直接跟参数完成自动映射赋值body以流的形式提交 仅支持POSTheader参数在request headers 里边提交form以form表单的形式提交 仅支持POST
dataType参数类型,默认String,其它值dataType=”Integer”defaultValue参数的默认值
参数过多可以参考这个.
@ApiImplicitParams
放一组@ApiImplicitParam
1 |
@ApiResponse
用在@ApiResponses中,一般用于表达一个错误的响应信息.常用参数:
code数字,例如400message信息,例如”请求参数没填好”response抛出异常的类
可以参考
@ApiResponses
用在请求的方法上,表示一组响应
@ApiModel
用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty
用在属性上,描述响应类的属性
Java默认注解
@Override
重写方法时,名字出错,编译器报错
@Deprecated
标识某个类的属性或方法已经过时
@SuppressWarnings
抑制泛型提示,添加@SuppressWarnings("rawtypes")
压制程序中出来的警告,可供压制的参数参考
@Retention
修饰注释的注释
用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中程序编译时,但不会被虚拟机读取在运行的时候;
用@Retention(RetentionPolicy.SOURCE)修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中;
用@Retention(RetentionPolicy.RUNTIME)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中程序编译时,会被虚拟机保留在运行时,
参考链接
@Target
用来标记注释可以修饰的范围
自定义注解
1 | public UserLogin{ } |
用于定义一个@UserLogin注解,可以加到Class,Method,Field上,相当于添加了附加信息,便于其他类进行判断.参考链接
- 本文标题:springboot的常用注解
- 创建时间:2022-01-20 17:57:26
- 本文链接:https://blog.212490197.xyz/article/program/springboot/some-annotations/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!