springboot启动类注解包含,springboot常用注解有哪些,及作用-

  springboot启动类注解包含,springboot常用注解有哪些,及作用?

  一、Spring Web MVC

  @RequestMapping@RequestMapping批注的主要目的是将Web请求与请求处理类中的方法进行映射。Spring MVC和Spring WebFlux都通过RquestMappingHandlerMapping和RequestMappingHndlerAdapter类提供对@RequestMapping注释的支持。

  @RequestMapping批注在请求处理类中标记请求处理方法;@RequestMapping批注有以下六个配置属性:

  值:映射的请求URL或其别名方法:HTTP兼容的方法名称params:根据HTTP参数头的存在、缺省或值过滤请求:根据HTTP头的存在、缺省或值过滤请求。消费:在HTTP请求体中设置允许的媒体类型。产品:HTTP响应正文中允许的媒体类型。提示:在使用@RequestMapping之前,请求处理类需要用@Controller或@RestController标记。微信官方账号java Select,回复java面试,获取面试资料,支持在线刷。

  以下是使用@RequestMapping的两个示例:

  @RequestMapping还可以标记类,这样当类中的处理方法映射请求路径时,它会自动将@RequestMapping在类上设置的值拼接到方法中的映射路径之前,如下所示:

  请求处理方法的参数列表中使用了@RequestBody@RequestBody。它可以将请求体中的参数绑定到一个对象。请求体参数通过HttpMessageConverter传递,根据请求体中的参数名匹配对象的属性名并绑定值。此外,还可以通过@Valid注释检查请求体中的参数。

  下面是一个使用@RequestBody的示例:

  @GetMapping @GetMapping注释用于处理HTTP GET请求,并将请求映射到特定的处理方法。具体来说,@GetMapping是一个组合标注,相当于@ RequestMapping的快捷方式(method=requestmethod.get)。

  以下是@GetMapping的用法示例:

  @PostMapping @PostMapping批注用于处理HTTP POST请求,并将请求映射到特定的处理方法。@PostMapping和@GetMapping一样,也是组合标注,相当于@ RequestMapping的快捷方式(method=httpmethod.post)。

  以下是使用@PostMapping的示例:

  @PutMapping @PutMapping批注用于处理HTTP PUT请求,并将其映射到特定的处理方法。@PutMapping是一个组合标注,相当于@ requestmapping的快捷方式(method=httpmethod.put)。

  以下是使用@PutMapping的示例:

  @DeleteMapping @DeleteMapping批注用于处理HTTP删除请求,并将请求映射到删除方法。@DeleteMapping是一个组合标注,相当于@ requestmapping的快捷方式(method=httpmethod.delete)。

  以下是使用@DeleteMapping的示例:

  @PatchMapping @PatchMapping批注用于处理HTTP补丁请求,并将请求映射到相应的处理方法。@PatchMapping相当于@ requestmapping的快捷方式(method=httpmethod.patch)。

  这里有一个简单的例子:

  @ controller advice @ controller advice是@Component annotation的扩展注释。Spring会自动扫描并检测由@ ControllerAdvice标记的类。@ControllerAdvice需要配合@ExceptionHandler、@InitBinder和@ModelAttribute批注使用,主要用于处理控制器抛出的异常信息。

  首先,我们需要定义一个由@ControllerAdvice标记的类。在这个类中,我们需要定义一个处理具体异常的方法,并用@ExceptionHandler注释对其进行标记。

  此外,必要时可以使用@InitBinder在类中进行全局配置,也可以使用@ModelAttribute配置视图相关的参数。使用@ControllerAdvice注释,您可以快速创建一个统一的自定义异常处理类。

  以下是使用@ControllerAdvice的示例代码:

  @ResponseBody @ResponseBody会自动将控制器中方法的返回值写入HTTP响应中。特别是,@ResponseBody批注只能用在由@Controller批注标记的类中。如果是在由@RestController标记的类中,该方法不需要用@ResponseBody批注标记。@RestController相当于@Controller和@ResponseBody的组合注释。

  以下是使用此注释的示例。

  @ Exception Handler @ Exception Handler批注用于标记处理由特定类型的异常类引发的异常的方法。当控制器中的某个方法抛出异常时,Spring会自动捕捉异常,并将捕捉到的异常信息传递给@ExceptionHandler标记的方法。

  以下是使用此注释的示例:

  @ResponseStatus @ResponseStatus批注可以标记请求处理方法。使用此注释指定响应所需的HTTP状态。具体来说,我们可以使用HttpStauts类来分配该注释的value属性。

  以下是使用@ResponseStatus批注的示例:

  @PathVariable @PathVariable批注将方法中的参数绑定到请求URI中的模板变量。您可以通过@RequestMapping注释指定URI的模板变量,然后使用@PathVariable注释将方法中的参数绑定到模板变量。

  具体来说,@PathVariable注释允许我们使用value或name属性为参数提供别名。以下是使用此注释的示例:

  模板名需要用{}括起来。如果方法的参数名与URI模板变量名一致,可以在@PathVariable中省略别名的定义。

  以下是一个简短的示例:

  提示:如果参数是可选的,可以在@PathVariable中设置require=false。

  @RequestParam @RequestParam批注用于将方法的参数绑定到Web请求传递的参数。使用@RequestParam可以方便地访问HTTP请求参数的值。

  以下是使用此批注的代码示例:

  该注释的其他属性配置与@PathVariable相同。特别是,如果传递的参数为空,还可以通过defaultValue设置一个DefaultValue。示例代码如下:

  @Controller @Controller是@Component注释的扩展,Spring会自动扫描并配置这个注释所标记的类。这个注释用来标记Spring MVC的控制器。以下是使用此注释的示例代码:

  @RestController @RestController是Spring 4.0中引入的,是一个特定的控制器注释。这个评论相当于@Controller和@ResponseBody的快捷方式。当使用这个注释时,不再需要在方法上使用@ResponseBody注释。

  以下是使用此注释的示例代码:

  @ModelAttribute有了这个注释,就可以通过模型索引名访问控制器中已经存在的模型。下面是使用此注释的一个简单示例:

  与@PathVariable和@RequestParam批注一样,如果参数名与模型名相同,则没有必要指定索引名。简写的例子如下:

  特别是,如果方法用@ModelAttribute标记,Spring会将方法的返回值绑定到具体的模型。例子如下:

  在Spring调用特定的处理方法之前,所有用@ModelAttribute标注的方法都会被执行。

  @CrossOrigin @CrossOrigin注释将为请求处理类或请求处理方法提供跨域调用支持。如果我们用这个注释标记类,那么类中的所有方法都将具有支持跨域的能力。使用这种注释的好处是可以微调跨域行为。使用此注释的示例如下:

  @InitBinder @InitBinder批注用于批注初始化WebDataBinider的方法,用于处理Http请求交付的表单数据,如时间格式化、字符串处理等。以下是使用此注释的示例:

  二、春豆注解

  在本节中,列出了与Spring Bean相关的四个注释及其用法。

  @ComponentScan @ComponentScan注释用于配置Spring需要扫描的组件注释所注释的类的包。通过配置包的basePackages属性或value属性,可以配置要扫描的包路径。是属性basePackages的别名。

  @Component@Component批注用于批注一个普通的组件类。它没有明确的业务范围,只是通知Spring需要将带注释的类包含在Spring Bean容器中并进行管理。使用此注释的示例如下:

  @Service @Service批注是@Component的扩展(特例),用于批注业务逻辑类。像@Component注释一样,这个注释标记的类将由Spring自动管理。以下是使用@Service注释的示例:

  @Repository @Repository批注也是@Component批注的扩展。和@Component注释一样,这个注释所标记的类会被Spring自动管理。@Repository注释用于标记DAO层的数据持久化类。该注释的用法如下:

  三。Spring Dependency Inject和Bean Scops Annotation Spring DI Annotation @ depends on @ depends on Annotation在初始化Bean之前,可以配置Spring IoC容器来初始化其他Bean对象。以下是用于此注释的示例代码:

  @Bean@Bean注释的主要功能是通知Spring由该注释标记的类将需要包含在Bean管理工厂中。@Bean注释的用法非常简单。这里着重介绍@Bean注释中initMethod和destroyMethod的用法。例子如下:

  Scops批注@Scope@Scope批注可以用来定义由@Component标记的类的作用域和由@Bean标记的类的作用域。@Scope的限定范围包括:singleton、prototype、request、session、globalSession或者其他用户自定义的范围。这里以原型为例来说明。

  当一个Spring Bean被声明为prototype时,Spring IoC容器将在每次需要使用它时初始化一个已更改类的新实例。定义Bean时,可以将Bean的scope属性设置为prototype: scope="prototype ",也可以使用@Scope注释,如下所示:

  @Scope(value=Configurable bean factory . Scope _ Proptotype)下面将给出使用@ Scope批注的两种不同方式。示例代码如下:

  @Scope Singleton模式当@Scope的作用域设置为Singleton时,这个注释标记的类只会被Spring IoC容器初始化一次。默认情况下,Spring IoC容器初始化的所有类实例都是单例的。同样,这种情况也有两种配置。示例代码如下:

  四。容器配置注释@Autowired@Autowired注释用于标记Spring将解析和注入的依赖项。该注释可以应用于构造函数、字段和setter方法。

  作用于构造函数以下是使用@Autowired批注构造函数的示例:

  这里作用于setter方法的是@Autowired注释的示例代码,用于标记setter方法:

  注释@Autowired字段是最简单的。您只需要将这个注释添加到相应的字段中。示例代码如下:

  @Primary当系统中需要配置多个同类型的bean时,@Primary可以定义这些bean的优先级。下面将给出一个示例代码来说明这个特性:

  输出结果:

  正在给丁法发消息。@ postconstruct和@PreDestroy值得注意的是,这两个标注不属于Spring。它们源自JSR-250中的两个注释,位于common-annotations.jar中,@PostConstruct注释用于标记在Spring初始化Bean之前需要执行的方法。@PreDestroy注释用于标记在销毁Bean之前需要执行的方法。以下是具体的示例代码:

  @Qualifier当系统中有多个同类型的Bean时,@Autowired在注入依赖项时不知道选择注入哪个实现类。此时,我们可以使用@Qualifier注释进行微调,并帮助@Autowired选择正确的依赖项。以下是关于此批注的代码示例:

  动词(verb的缩写)Spring Boot注释@ spring boot application @ spring boot application注释是一个快速配置注释。在其标记的类中,可以定义一个或多个bean,自动配置bean和自动扫描组件可以自动触发。该注释相当于@Configuration、@EnableAutoConfiguration和@ComponentScan的组合。

  这个注释用在Spring Boot应用程序的主类中。示例代码如下:

  @SpringBootApplication

  公共类应用程序{

  公共静态void main(String [] args){

  spring application . run(application . class,args);

  }

  } @ enable auto configuration @ enable auto configuration注释用于通知Spring自动配置与当前类路径下引入的依赖包相关的配置项。

  两个批注@ConditionalOnClass和@ ConditionalOnMissingClass属于类条件批注,它们根据类是否存在来决定是否进行某种配置。下面是一个简单的示例代码:

  @配置

  @ condition alon class(data source . class)

  MySQL自动配置类{

  //.

  } @ ConditionalOnBean和@ ConditionalOnMissingBean是对象条件注释,根据对象的存在决定是否执行某些配置方法。示例代码如下:

  @Bean

  @ conditional bean(name= data source )

  localcontainereentitymanagerfactorybean entityManagerFactory(){

  //.

  }

  @Bean

  @ ConditionalOnMissingBean

  公共MyBean myBean(){

  //.

  } @ ConditionalonProperty @ ConditionalonProperty批注会根据是否满足配置要求来决定是否执行Spring配置文件中配置项所标记的方法。示例代码如下:

  @Bean

  @ conditional property(name= AliPay ,havingValue=on )

  支付宝支付宝(){

  返回新支付宝();

  } @ ConditionalOnResource这个注释用来检测当一个配置文件存在时,它所标记的方法会被触发。以下是使用此注释的代码示例:

  @ conditional resource(resources= class path:website . properties )

  属性addWebsiteProperties(){

  //.

  }@ConditionalOnWebApplication和@ conditionalonotWebapplication用于确定当前应用是否为web应用。如果当前应用程序是一个Web应用程序,使用Spring WebApplicationContext并定义其会话的生命周期。这里有一个简单的例子:

  @ConditionalOnWebApplication

  HealthCheckController HealthCheckController(){

  //.

  }@ConditionalExpression该注释允许我们控制更细粒度的基于表达式的配置条件限制。当表达式满足某个条件或者表达式为真时,就会执行这个注释所标记的方法。

  @Bean

  @ conditional exception( $ { local store } $ { local== true } )

  LocalFileStore store(){

  //.

  }@Conditional@Conditional批注可以控制更复杂的配置条件。当Spring内置的条件控件注释不满足应用程序需求时,可以使用这个注释来定义自定义控件条件,以满足自定义需求。下面是使用此注释的一个简单示例:

  @ conditional(customconditional . class)

  custom properties addCustomProperties(){

  //.

  }总结本课程总结了Spring Boot各种常用注释的使用方式,让大家对Spring Boot常用注释有一个全面的了解。

  版权归作者所有:原创作品来自博主小二上九8,转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: