首页 今日头条正文

breaking,Spring Boot 注解:全家桶快速通,新婚祝福语

本次课程将对Spring Boot 中所涉及到的注解进行悉数的整理,将开发过程中常用的Annotation进行介绍并给出相应的代码示例。协助开发者共同的、标准的、全面的学习并把握Spring Framework Annotations的用法。

1、Spring Web MVC 与Spring Bean 注解

1-1、Spring Web MVC 注解

1-1-1、@RequestMapping

​ @RequestMapping注解的首要用途是将Web恳求与恳求处理类中的办法进行映射。Spring MVC和Spring WebFlux都经过RquestMappingHandlerMappingRequestMappingHndlerAdapter两个类来供给对@RequestMapping注解的支撑。

​ @RequestMapping注解对恳求处理类中的恳求处理办法进行标示;@RequestMapping注解具有以下的六个装备特点:

  • value:映射的恳求URL或许其别号
  • method:兼容HTTP的办法名
  • params:依据HTTP参数的存在、缺省或值对恳求进行过滤
  • header:依据HTTP Header的存在、缺省或值对恳求进行过滤
  • consume:设定在HTTP恳求正文中答应运用的媒体类型
  • product:在HTTP呼应体中答应运用的媒体类型

提示:在运用@RequestMapping之前,恳求处理类还需求运用@Controller或@RestController进行符号

下面是运用@RequestMapping的两个示例:

​ @RequestMapping还可以对类进行符号,这样类中的处理办法在映射恳求途径时,会主动将类上@RequestMapping设置的value拼接到办法中映射途径之前,如下:

1-1-2、@RequestBody

​ @RequestBody在处理恳求办法的参数列表中运用,它可以将恳求主体中的参数绑定到一个目标中,恳求主体参数是经过HttpMessageConverter传递的,依据恳求主体中的参数名与目标的特点名进行匹配并绑定值。此外,还可以经过@Valid注解对恳求主体中的参数进行校验。下面是一个运用@RequestBody的示例:

1-1-3、@GetMapping

​ @Ge夏玲影音tMapping注解用于处理HTTP GET恳求,并将恳求映射到详细的处理办法中。详细来说,@GetMapping是一个组合注解,它适当所以@RequestMapping(method=RequestMethod.GET)的方便办法。下面是@GetMapping的一个运用示例:

1-1-4、@PostMapping

​ @PostMapping注解用于处理HTTP POST恳求,并将恳求映射到详细的处理办法中。@仇东升直播间Po让对方死心塌地的巫术stMapping与@GetMapping相同,也是一个组合注解,它适当所以@RequestMapping(method=HttpMethod.POST)的方便办法。下面是运用@PostMapping的一个示例:

1-1-5、@PutMapping

​ @PutMapping注解用于处理HTTP PUT恳求,并将恳求映射到详细的处理办法中,@PutMapping是一个组合注解,适当所以@RequestMapping(method=HttpMethod.PUT)的方便办法。庞克莱门捷夫下面是运用@PutMapping的一个示例:

1-1-6、@DeleteMapping

​ @DeleteMapping注解用于处理HTTP DELETE恳求,并将恳求映射到删去办法中。@DeleteMapping是一个组合注解,它适当所以@RequestMapping(method=HttpMethod.DELETE)的方便办法。下面是运用@DeleteMapping的一个示例:

1-1-7、@PatchMapping

​ @PatchMapping注解用于处理HTTP PATCH恳求,并将恳求映射到对应的处理办法中。@PatchMapping适当所以@RequestMapp卡布西游水帘洞石碑答案ing(method=HttpMethod.PATCH)的方便办法。下面是一个简略的示例:

1-1-8、@ControllerAdvice

​ @ControllerAdvice是@Component注解的一个延伸注解,Spring会主动扫描并检测被@ControllerAdvice所标示的类。@ControllerAdvice需求和@ExceptionHandler、@InitBinder以及@ModelAttribute注解调配运用,首要是用来处理操控器所抛出的反常信息。首要,咱们需求界说一个被@ControllerAdvice所标示的类,在该类中,界说一个用于处理详细反常的办法,并运用@ExceptionHandler注解进行符号。此外,在有必要的时分,可以运用@InitBinder在类中进行大局的装备,还可以运用@ModelAttribute装备与视图相关的参数。运用@ControllerAdvice注解,就可以快速的创立共同的,自界说的反常处理类。下面是一个运用@Control星狱囚武lerAdvice的示例代码:

1-1-9、@ResponseBody

​ @ResponseBody会主动将操控器中办法的返回值写入到HTTP呼应中。特别的,@ResponseBody注解只能用在被@Controller注解符号的类中。假如在被@RestController符号的类中,则办法不需求运用@ResponseBody注解进行标示。@RestController适当所以@Controller和@ResponseBody的组合注解。下面是运用该注解的一个示例:

1-1-10、@ExceptionHandler

​ @ExceptionHander注解用于标示处理特定类型反常类所抛出反常的办法。当操控器中的办法抛出反常时,Spring会主动捕获反常,并将捕获的反常信息传递给被@ExceptionHandler标示的办法。下面是运用该注解的一个示例:

1-1-11、@ResponseStatus

​ @ResponseStatus注解可以标示恳求处理办法。运用此注解,可以指定呼应所需求的HTTP STATUS。特别地,咱们可以运用HttpStauts类对该注解的value特点进行赋值。下面是运用@ResponseStatus注解的一个示例:

1-1-12、@PathVariable

​ @PathVariable注解是将办法中的参数绑定到恳求URI中的模板变量上。可以经过@RequestMapping注解来指定URI的模板变量,然后运用@PathVariable注解将办法中的参数绑定到模板变量上。特别地,@PathVariable注解答应咱们运用val教保网ue或name特点来给参数取一个别号。下面是运用此注解的一个示例:

​ 模板变量名需求运用“{ }”进行包裹,假如办法的参数名与URI模板变量名共同,则在@PathVariable中就可以省掉别号的界说。下面是一个简写的示例:

提示:假如参数是一个非有必要的,可选的项,则可以在@PathVariable中设置require = false

1-1-13、@RequestParam

​ @RequestParam注解用于将办法的参数与Web恳求的传递的参数进行绑定。运用@RequestParam可以轻松的拜访HTTP恳求参数的值。下面是运用该注解的代码示例:

该注解的其他特点装备与@PathVariable的装备相同,特别的,假如传递的参数为空,还可以经过defaultValue设置一个默许值。示例代码如下:

1-1-14、@Controller

​ @Controller是@Component注解的一个延伸,Spring会主动扫描并装备被该注解标示的类。此注解用于标示Spring MVC的操控器。下面是运用此注解的示例代码:

1-1-15、@RestController

​ @RestController是在Spring 4.0开端引进的,这是一个特定的操控器注解。此注解适当于@亚洲男同志Controller和@ResponseBody的方便办法。当运用此注解时,不需求再在办法上运用@ResponseBody注解。下面是运用此注解的示例代码:

1-1-16、@ModelAttribute

​ 经过此注解,可以经过模型索引称号来拜访现已存在于操控器中的model。下面是运用此注解的一个简略示例:

与@PathVariable和@RequestParam注解相同,假如参数名与模型具有相同的姓名,则不用指定索引称号,简写示例如下:

特别地,假如运用@纠正胯部广大的睡姿ModelAttribute对办法进行标示,Spring会将办法的返回值绑定到详细的Model上。示例如下:

在Spring调用详细的处理办法之前,被@ModelAttribute注解标示的一切办法都将被履行。

1-1-17、@CrossOrigin

​ @CrossOrigin注解将为恳求处理类或恳求处理办法供给跨域调用支撑。假如咱们将此注解标示类,那么类中的一切办法都将取得支撑跨域的才能。运用此注解的优点是可以微调跨域行为。运用此注解的示例如下:

1-1-18、@InitBinder

​ @InitBinder注解用于标示初始化WebDataBinider的办法,该办法用于对Http恳求传递的表单数据进行处理,如时刻格式化、字符串处理等。下面是运用此注解的示例:

1-2、Spring Bean 注解

​ 在本末节中,首要罗列与Spring Bean相关的4个注解以及它们的运用办法。

1-2-1、@ComponentScan

​ @ComponentScan注解用于装备Spring需求扫描的被组件注解注释的类地点的包。可以经过装备其basePackages特点或许value特点来装备需求扫描的包途径。value特点是basePackages的别号。此注解的用法如下:

1-2-2、@Compo吕凤杰nent

​ @Component注解用于标示一个一般的组件类,它没有清晰的事务规模,仅仅告诉Spring被此注解的类需求被归入到Spring Bean容器中并进行办理。此注解的运用示例如下:

1-2-3许娜京跌倒甩奶狂、@Service

​ @Service注解是@Component的一个延伸(特例),它用于标示事务逻辑类。与@Component注解相同,被此注解标示的类,会主动被Spring所办理。下面是运用@Service注解的示例:

1-2-4、@Repository

​ @Repository注解也是@Compon黄筱琳ent注解的延伸,与@Component注解相同,被此注解标示的类会被Spring主动办理起来,@Repository注解用于标示DAO层的数据耐久化类。此注解的用法如下:

2、Spring Dependency Inject 与 Bean Scops注解

2-1、Spring DI注解

2-1-1、@DependsOn

​ @DependsOn注解可以装备Spring IoC容器在初始化一个Bean之前,先初始化其他的Bean目标。下面是此注解运用示例代码:

2-1-2、@Bean

​ @Bean注解首要的效果是奉告Spring,被此注解所标示的类将需求归入到Bean办理工厂中。@Bean注解的用法很简略,在这儿,侧重介绍@Bean注解中initMethod和destroyMethod的用法。示例如下:

2-2、Scops注解

2-2-1、@Scope

​ @Scope注解可以用来界说@Component标示的类的效果规模以及@Bean所符号的类的效果规模。@Scope所约束的效果规模有:singleton、prototype、request、session、globalSession或许其他的自界说规模。这儿以prototype为比如进行解说。当一个Spring Bean被声明为prototype(原型形式)时,在每次需求运用到该类的时分,Spring IoC容器都会初始化一个新的改类的实例。在界说一个Bean时,可以设置Bean的scope特点为prototype:scope=“prototype”,也可以运用@Scope注解设置,如下:

@Scope(value=ConfigurableBeanFactory.SCOPE_PROPTOTYPE)

下面将给出两种不同的办法来运用@Scope注解,示例代码如下:

2-2-2、@Scope 单例形式

​ 当@Scope的效果规模设置成Singleton时,被此注解所标示的类只会被Spring IoC容器初始化一次。在默许情况下,Spring IoC容器所初始化的类实例都为singleton。相同的原理,此景象也有两种装备办法,示例代码如下:

3、容器装备注解

3-1、@Autowired

​ @Autowired注解用于符号Spring即将解析和注入的依靠项。此注解可以效果在结构函数、字段和setter办法上。

3-1-1、效果于结构breaking,Spring Boot 注解:全家桶快速通,新婚祝福语函数

​ 下面是@Autowired注解标示结构函数的运用示例:

3-1-2、效果于setter办法

​ 下面是@Autowired注解标示setter办法的示例代码:

3-1-3、效果于字段

​ @Autowired注解标示字段是最简略的,只需求在对应的字段上参加此注解即可,示例代码如下:

3-2、@Primary

​ 当体系中需求装备多个具有相同类型的bean时,@Primary可以界说这些Bean的优先级。下面将给出一个实例代码来阐明这一特性:

输出成果:

this is send breaking,Spring Boot 注解:全家桶快速通,新婚祝福语DingDing method message.

3-3、@PostConstruct与@PreDestroy

​ 值得注意的是,这两个注解不归于Spring,它们是源于JSR-250中的两个注解,坐落common-annotations.jar中。@PostConstruct注解用于标示在Bean被Spring初始化之前需求履行的办法。@PreDestroy注解用于标示Bean被毁掉前需求履行的办法。下面是详细的示例代码:

3-4、@Qualifier

​ 当体系中存在同一类型的多个Bean时,@Autowired在进行依靠注入的时分就不知道该挑选哪一个完成类进行注入。此刻,咱们可以运用@Qualifier注解来微调,协助@Autowired挑选正确的依靠项。下面是一个关于此注解的代码示例:

4、Spring Boot注解

4-1、@SpringBootApplication

​ @SpringBootApplication注解是一个方便的装备注解,在被它标示的类中,可以界说一个或多个Bean,并主动触发主动装备Bean和主动扫描组件。此注解适当于@Configuration、@EnableAutoConfiguration和@ComponentScan的组合。在Spring Boot运用程序的主类中,就运用了此注解。示例代码如下:

@SpringB大胸小姐姐ootApplication
public class Application{breaking,Spring Boot 注解:全家桶快速通,新婚祝福语
public static void main(String [] args){
SpringApplication.run(Application.class,args);
}
}

4-2、@EnableAu杜有泽toConfiguration

​ @EnableAutoConfiguration注解用于告诉Spring,依据当时类途径下引进的依靠包,主动装备与这些依靠包相关的装备项。

4-3、@ConditionalOnClass与@ConditionalOnMissingClass

​ 这两个注解归于类条件注解,它们依据是否存在某个类作为判别依据来决议是否要履行某些装备。下面是一个简略的示例代码:

@Configuration
@ConditionalOnClass(DataSource.class)
class MySQLAutoConfiguration {
//...
}

4-4、@ConditionalOnBean与@ConditionalOnMissingBean

​ 这两个注解归于目标条件注解,依据是否存在某个目标作歪嘴症为依据来决议是否要履行某些装备办法。示例代码如下:

@Bean
@ConditionalOnBean(name="dataSource")
LocalContainerEntityManagerFactoryBean ebreaking,Spring Boot 注解:全家桶快速通,新婚祝福语ntityManagerFactory(){
//...
}
@Bean
@ConditionalOnMissingBebreaking,Spring Boot 注解:全家桶快速通,新婚祝福语an
public MyBean myBean(){
//...
}

4-5、@ConditionalOnProperty

​ @ConditionalOnProperty注解会依据Spring装备文件中的装备项是否满意装备要求,然后决议是否要履行被其标示的办法。示例毕玉玺抖音代码如下:

@Bean
@ConditionalOnProperty(name="alipay",havingValue="on")
Alipay alipay(){
return new breaking,Spring Boot 注解:全家桶快速通,新婚祝福语Alip华侨大学瞿辉ay();
}

4-6、@ConditionalOnResource

​ 此注解用于检测当某个装备文件存在使,则触发被其标示的办法,下面是运用此注解的代码示例:

@ConditionalOnResource(resources = "classpath:website.properties")
Properties addWebsiteProperties(){
//...
}

4-7、@ConditionalOnWebApplication与@ConditionalOnNotWebApplication

​ 这两个注解用于判别当时的运用程序是否是Web运用程序。假如当时运用是Web运用程序,则运用Spring WebApplicationContext,并界说其会话的生命周期。下面是一个简略的示例:

@ConditionalOnWebApplication
HealthCheckController healtVGprohCheckController(){
//...
}

4-8、@ConditionalExpression

​ 此注解可以让咱们操控更细粒度的根据表达式的装备条件约束。当表达式满意某个条件或许表达式为真的时分,将会履行被此注解标示的办法。

@Bean
@ConditionalException("${localstore} && ${local == 'true'}")
LocalFileStore store(){
//...
}

4-9、@Conditional

​ @Conditional注解可以操控更为杂乱的装备条件。在Spring内置的条件操控注解不满意运用需求的时分,可以运用此注解界说自界说的操控条件,以到达自界说的要求。下面是运用该注解的简略示例:

@Conditioanl(CustomConditioanl.class)
CustomProperties addCustomProperties(){
//...
}

总结

  • 本次课程总结了Spring Boot中常见的各类型注解的运用办法,让我们可以共同的对Spring Boot常用注解有一个全面的了解。因为篇幅的原因,breaking,Spring Boot 注解:全家桶快速通,新婚祝福语关于Sprin吉加力g Boot不常用的一些注解,将在下一次共享中进行弥补和阐明。
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。