常用注解介绍及简单使用,SpringBoot常用注解的介

作者:计算机知识

 

图片 1SpringBoot | 第5章:常用申明介绍及简单利用

@Bean 注解

Indicates that a method produces a bean to be managed
by the Spring container.
该注明用于方法上,使用该评释的主意将会变卦二个实体对象,该实体对象将统一由Spring容器管理

那几个注脚属性的称谓和语义是明知故犯与Spring xml配置情势中的<bean/>成分看似

@Bean申明重返的实体对象名称暗许使用被@Bean评释的方法名称

       @Bean  ----①
       //@Bean("helloBean")  ----②
       public MyBean myBean() {
           // instantiate and configure MyBean obj
           return obj;
       }

如上1注释,暗许景况下,再次来到的实体对象名为myBean,当然大家能够运用二注释的方法来给实体类内定1个外号(非常注意,@Bean是同意有多少个别称存在)

// bean 可用作 'b1' 和'b2', 但不可用作'myBean'       
@Bean({"b1", "b2"}) 
public MyBean myBean() {
     // instantiate and configure MyBean obj
     return obj;
}
  1. @Bean 申明不提供Scope、depends-on、primary、lazy属性,相反的,@Bean属性应该与上述提到的本性配合使用,举个例子
@Bean
@Scope("prototype")
public MyBean myBean() {
     // instantiate and configure MyBean obj
     return obj;
}

SpringBoot用于简化Spring应用的搭建,开辟及布局;该框架采纳表明的形式张开布署可以很有利的创设Spring应用。

常用表明

@springBootApplication 系统运行类申明,此注脚是个结合注解,包涵了:@SpringBootConfiguration,@EnableAutoConfiguration,@ConmentScan八个评释的整合。

@SpringBootConfiguration 承继至@Configuration,对于熟稔spring的开采者来讲,此注解当前类是安排类,并会将日前类内注解的五个或多个以@Bean阐明标识的主意的实例纳入到srping容器中,并且实例名正是办法名。

@EnableAutoConfiguration 此评释正是SpringBoot 能够自行实行计划的法力所在,通过此表明可以将装有符合自行条件的Bean的概念加载到spring容器中。

举个例子依照spring-boot-starter-web ,来判断你的种类是还是不是必要增添了webmvc和tomcat,就能够自动的帮您安顿web项目中所供给的暗中认可配置。

@ComponentScan 这几个熟稔spring的开垦者也相应熟稔,会扫描当前包及其子包下被@Component,@Controller,@Service,@Repository等申明标志的类并纳入到spring容器中进行田间管理。

事先多少个章节,大多数都以算介绍springboot的一些外场配备,举个例子日志配置等。那章节开首,初叶计算一些有关springboot的汇中共总支部委员会出的知识点。由于SpringBoot自家是基于SpringSpringMvc等各类spring家族的三个消除方案,可快速进行联谊。故相关知识点其实超过1/4都以依照spring或者springmvc既有的知识点的。本章节,首要疏解的是有关web开发springboot独有的一些常用注明实行认证。

在@Configuration中声明@Bean属性

普通状态下,指点@Bean表明的法子在辅导@Configuration证明的类中宣称,在这种场地下,同样的类中,分歧的@Bean方法能够直接互动调用.作为代价@Configuration类及其工厂方法无法宣称为私有.

   @Configuration
   public class AppConfig {

       @Bean
       public FooService fooService() {
           return new FooService(fooRepository());
       }

       @Bean
       public FooRepository fooRepository() {
           return new JdbcFooRepository(dataSource());
       }
       // ...
   }

1. @SpringBootApplication

常用注解介绍及简单使用,SpringBoot常用注解的介绍及简单使用。@Controller 和 @RestController

@RestController 是Spring4之后参与的注释,原本在@Controller中回到json须求@ResponseBody来同盟,借使一直用@RestController替代@Controller就不需求再布局@ResponseBody,默许返回json格式。而@Controller是用来创立管理http请求的目的,一般结合@RequestMapping使用。

@SpringBootApplication

前几章,在系统运行类里面,都插手了此运营评释,此证明是个组成证明,包涵了@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan注解。

  • @SpringBootConfiguration 继承至@Configuration,对于熟练spring的开荒者来讲,此表明当前类是安插类,并会将眼下类内表明的3个或八个以@Bean注脚标志的主意的实例纳入到srping容器中,并且实例名正是措施名。

  • @EnableAutoConfiguration 那些评释正是springboot能自行举行布署的法力所在了。首借使通过此注脚,能具备符合自行配置原则的bean的概念加载到spring容器中,比方依照spring-boot-starter-web ,来决断你的类型是或不是须要增多了webmvctomcat,就能够自动的帮你布署web项目中所要求的默许配置。具体的应用,会在后期自定义落成3个电动运维类时,会讲课到它的局地机制。此章节就不深入了,只要求它是其1用途就可以,一般上也单身选用不要那么些注脚,但举例需求排除部分没有须求自行配置的类时,可利用exclude举行化解。

  • @ComponentScan 那一个熟习spring的开荒者也应该熟练,会扫描当前包及其子包下被@Component,@Controller,@Service,@Repository等表明标志的类并纳入到spring容器中张开管理。

@Bean的Lite模式

@Bean 申明并不一定非要在讲解的了@Configuration的类中动用,你也足以在@Component类中要么乃至在平凡的java类中使用@Bean评释,在这种情状下,@Bean证明将以所谓的Lite方式被管理

@SpringBootApplication 申明等价于以默许属性使用 @Configuration,@EnableAutoConfiguration 和 @ComponentScan,常常作为主类的注解;

@RequestMapping

三个用来拍卖请求地址映射的注脚,可用来类或形式上。用于类上,表示类中的全部响应请求的主意都以以该地方作为父路线

常用属性:

value, method;
value: 钦赐请求的莫过于地址,钦定的地点能够是UOdysseyI Template 情势;
method: 钦定请求的method类型, GET、POST、PUT、DELETE等;

consumes,produces;
consumes: 内定管理请求的付出内容类型(Content-Type),比如application/json, text/html;
produces: 钦赐再次来到的剧情类型,仅当request请求头中的(Accept)类型中隐含该钦点项目才回去;

params,headers;
params: 钦赐request中必须包蕴有个别参数值是,才让该办法管理。
headers: 钦点request中必须包涵有些钦点的header值,技能让该办法管理请求。

 

常用的大概就value和method了。其简化评释有

@GetMapping 等同于 @RequestMapping(method = RequestMethod.GET)
@PostMapping 等同于 @RequestMapping(method = RequestMethod.POST)
@PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE)
@PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)

@Controller 和 @RestController

@RestController 是Spring四之后参加的注释,原本在@Controller中回到json必要@ResponseBody来合营,借使一向用@RestController代替@Controller就没有需求再布署@ResponseBody,暗许再次来到json格式。而@Controller是用来创建管理http请求的对象,一般结合@RequestMapping使用。

@Configuration

该注明热示该类为Spring容器的配置类

2. @Configuration

@RequestBody和@ResponseBody

@RequestBody注脚允许request的参数在reqeust体中,平日结合前端POST请求,进行前后端交互。

@ResponseBody注脚帮忙将的参数在reqeust体中,平日重返json格式给前端。

@RequestMapping

1个用来管理请求地址映射的笺注,可用来类或方法上。用于类上,表示类中的全体响应请求的办法都以以该地点作为父路线。

常用属性:

  • value, method;value: 内定请求的其实地址,内定的地方能够是URI Template 形式;method: 钦点请求的method类型, GET、POST、PUT、DELETE等;
  • consumes,produces;consumes: 钦定管理请求的交给内容类型(Content-Type),举例application/json, text/html;produces: 内定再次回到的从头到尾的经过类型,仅当request请求头中的类型中包涵该钦点项目才回来;
  • params,headers;params: 内定request中必须带有有些参数值是,才让该方法管理。headers: 钦定request中务必含有有些钦命的header值,技术让该措施管理请求。

常用的基本上就valuemethod了。其简化注脚有

@GetMapping 等同于 @RequestMapping(method = RequestMethod.GET)@PostMapping 等同于 @RequestMapping(method = RequestMethod.POST)@PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT)@DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE)@PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)

@EnableAutoConfiguration

拉开SpringBoot的电动配置效益,它至关心珍视要告诉springboot依照你安插的注重性进行机动配置,比如你安插了spring-boot-started-web,springboot要是你正在开辟贰个web应用,并展开部分web相关的配置.

提出该类是bean配置的音信源,相当于xml中的<beans></beans>标签,平日用于主类上。

@PathVariable、@RequestParam、@RequestAttribute

@PathVariable用来收纳参数,如/path/00壹,可接收001作为参数

图片 2

@RequestParam 用来接收U库罗德L中的参数,如/param?id=00一,可接收00一作为参数

图片 3

@RequestAttribute用于访问由过滤器或拦截器创造的、预先存在的央浼属性,效果等同与request.getAttrbute().

图片 4

@RequestBody和@ResponseBody

  • @RequestBody注明允许request的参数在reqeust体中,平常结合前端POST请求,实行前后端交互。

  • @ResponseBody注解帮助将的参数在reqeust体中,经常重临json格式给前端。

@ComponentScan

围观SpringBoot根Package下全部的Bean.

3. @EnableAutoConfiguration

@Component、@Service、@Repository

那3者都以表美素佳儿(Friso)个单例的bean类并纳入spring容器中,后双方其实都以继续于@Component

@Component 最常见的零部件,能够被注入到spring容器实行保管

@Repository 功用于长久层

@Service 功能于事情逻辑层

一般一些类没办法鲜明是选用@Service照旧@Component时,注明使用@Component,比如redis的配置类等

@PathVariable、@RequestParam、@RequestAttribute

  • @PathVariable用来接过参数,如/path/00一,可接收001作为参数

图片 5PathVariable

  • @RequestParam 用来接收U奇骏L中的参数,如/param?id=001,可接收001作为参数

图片 6RequestParam

  • @RequestAttribute用于访问由过滤器或拦截器创制的、预先存在的央求属性,效果等同与request.getAttrbute().

图片 7RequestAttribute

@RestController[2018年1月2日22:27:01]

回到文本格局的数据(json,xml)
@RestController也正是在@Controller注明的类中的种种方法加上@ResponseBody申明

让 Spring Boot 依据使用所注解的正视来对 Spring 框架进行活动配置,一般加在主类上。

@ModelAttribute

第三是绑定请求参数到钦定对象上。此注明可被用于方法、参数上。

使用在参数上,会将客户端传递过来的参数按名称注入到钦定对象中,并且会将那个目的活动进入ModelMap中,便于View层使用;

行使在章程上,会在每二个@RequestMapping标注的方法前举办,要是有再次回到值,则自动将该再次来到值插足到ModelMap中;

 

@Component、@Service、@Repository

那三者都以说美素佳儿个单例的bean类并纳入spring容器中,后两个其实都以往续于@Component

  • @Component 最平凡的组件,能够被注入到spring容器进行田间管理

  • qg1515 ,@Repository 成效于长久层

  • @Service 效能于业务逻辑层

普通一些类不能鲜明是行使@Service依然@Component时,申明使用@Component,比如redis的配置类等

@RequestMapping(value="/xxx",method = RequestMethod.DELETE)

Url路径映射
value:表示其实请求的UTiggoL地址
method:请求方法,能够是POST/GET/DELETE/PUT等

4. @ComponentScan

@ModelAttribute

主固然绑定请求参数到内定对象上。此注明可被用于方法、参数上。

  • 应用在参数上,会将客户端传递过来的参数按名称注入到钦点对象中,并且会将以此目的活动进入ModelMap中,便于View层使用;
  • 接纳在艺术上,会在每四个@RequestMapping注解的不二等秘书诀前试行,如若有再次回到值,则自动将该再次来到值参预到ModelMap中;

是因为前天都施用前后端分离开辟,故此注脚相对用的较少了,但对此部分在历次请求前需求实香港行政局地额外操作时。使用此申明依旧是个选项,比方实行联合的作业余学校验等,但使用此申明达成类似效能时索要留意,使用异步调用时,比方callable或者DeferredResult时,被此注明的方法会推行两次,因为异步请求时,是挂起另3个线程去重新施行,对于配置了拦截器而已,它们的实行各样为

preHandle ---->afterConcurrentHandlingStarted ----> Controller---->preHandler----> postHandler ----> afterCompletion

拦截器的有关知识点会在下章实行表达,这里只是特别表达下。解决方案的话可粗略依照DispatcherType类型举办剖断,异步时对应类型为:ASYNC,第二回呼吁寻常为:REQUEST。

本章节最主如若演讲了在web支出时有个别常用的表明,但举个例子有的像@autowired@resource@Qualifier等在此就不列举了,这个都相比轻易。对于开荒者来说那个大多都领会。

当下互联网络诸多大佬都有springboot排山倒海教程,如有雷同,请多多包罗了。本文是作者在计算机前一字一板敲的,每一步都以实行的。若文中有着错误之处,还望建议,多谢。

  • 个人QQ:499452441
  • 微信公众号:lqdevOps

图片 8公众号

民用博客:

@PathVariable

url传参,被该@PathVariable注明的参数将被填充到@RequestMapping中的Url地址的通配符中。

小编们日常利用 @ComponentScan 评释寻觅beans,并结成 @Autowired 构造器注入,你的具备应用程序组件( @Component , @瑟维斯, @Repository , @Controller 等)将被电动注册为Spring Beans。

@ControllerAdvice

@ControllerAdvice 一般作为全局1二分管理的切面类,它能够钦命扫描范围,重回值定义:
即使直白重临Model类,供给运用@ResponseBody 举行json转化
假定回到的是String,表示跳转到某些View
如若回去的是ModelAndView则也就是 Model @ResponseBody

5. @Repository

本文由bwin必赢发布,转载请注明来源

关键词: 亚洲 springboot 第六章 注解 常用