插插综合网
你的位置:家庭伦理 > 插插综合网 > toupaizipai 数媒在线课堂 Spring Boot 常用注解先容及使用
toupaizipai 数媒在线课堂 Spring Boot 常用注解先容及使用

发布日期:2025-06-27 13:34    点击次数:168

toupaizipai 数媒在线课堂 Spring Boot 常用注解先容及使用

一、技俩树立注解toupaizipai

1、@SpringBootApplication

这是一个注解组合,包括了 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan 注解。

(1) @SpringBootConfiguration 剿袭自 @Configuration,关于老到 spring 的建设者而言,此标注当现时类是树立类,并会将现时类内声明的一个或多个以 @Bean 注解标记的法子的实例纳入到 spring 容器中,而况实例名即是法子名。

(2)@EnableAutoConfiguration 这个注解即是 springboot 能自动进行树立的魔法所在。主要通过此注解,能将统共合适自动树立条款的 bean 的界说加载到 spring 容器中,比如左证 spring-boot-starter-web,来判断你的技俩是否需要添加 webmvc 和 tomcat,就会自动的帮你树立 web 技俩中所需要的默许树立。需要排斥一些无需自动树立的类时,可利用 exclude 进行排斥。

(3)@ComponentScan 会扫描现时包过头子包下被 @Component, @Controller,@Service,@Repository 等注解标记的类并纳入到 spring 容器中进行管制

2、@MapperScan

springboot 相沿 mybatis 组件的一个注解,通过此注解指定 mybatis 接口类的旅途,即可完成对 mybatis 接口的扫描。

它和 @mapper 注解是相通的作用,不同的方位是扫描进口不相通。@mapper 需要加在每一个 mapper 接口类上头。是以大浩荡情况下,都是在计较好工程目次之后,通过 @MapperScan 注解树立旅途完成 mapper 接口的注入。

添加 mybatis 相应组建依赖之后。就不错使用该注解。

3、资源导入注解

@ImportResource、@Import、@PropertySource 这三个注解都是用来导入自界说的一些树立文献。

@ImportResource(locations={}) 导入其他 xml 树立文献,需要圭臬在主树立类上。

导入 property 的树立文献 @PropertySource 指定文献旅途,这个绝顶于使用 spring 的 <importresource/> 标签来完成树立项的引入。

@import 注解是一个不错将平凡类导入到 spring 容器中作念管制

二、controller 层

1、@Controller 和 @RestController

@RestController 是 spring4 之后加入的注解,底本在 @Controller 中复返 json 需要 @ResponseBody 来勾搭,如果告成用 @RestController 替代 @Controller 就不需要再树立 @ResponseBody,默许复返 json 模样。而 @Controller 是用来创建处理 http 肯求的对象,一般都集 @RequestMapping 使用。

2、@CrossOrigin

@CrossOrigin(origins="",maxAge=1000)

这个注解主若是为了惩处跨域访谒的问题。这个注解不错为统共这个词 controller 树立启用跨域,也不错在法子级别启用。

咱们在技俩中使用这个注解是为了惩处微劳动在作念定时任务转机编排的工夫,会访谒不到 spider 节点而出现跨域问题。

3、@Autowiredtoupaizipai

自动安装。

需要从 bean 工场中取得一个 bean 时,spring 会自动为咱们安装该 bean 中标记为 @Autowired 的元素。

4、@EnableCaching

这个注解是 spring framework 中的注解初始的缓存管制功能。作用绝顶于 spring 树立文献中的 cache manager 标签。

5、@RequestMapping

一个用来处理肯求地址映射的注解,可用于类和法子上。用于类上,暗示类中的统共反应肯求的法子都是以该地址算作父旅途。

常用属性:

(1)value:指定肯求的内容地址,指定的地址不错是 URI Template 花式;

(2)method:指定肯求的 method 法子,GET、POST、PUT、DELETE 等;

(3)consumes:指定处理肯求的提交内容类型(content-type),举例 application/json、text/html;

(4)produces: 指定复返的内容类型,仅当 request 肯求头中的 (Accept) 类型中包含该指定类型才复返;

(5) params: 指定 request 中必须包含某些参数值是,才让该法子处理。

(6)headers: 指定 request 中必须包含某些指定的 header 值,智商让该法子处理肯求。

常用的即是 value 和 method。

天上人间av

其简化注解有:

@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)

6、@RequestBody 和 @ResponseBody

@RequestBody 注解允许 request 的参数在 reqeust 体中,时常都集前端 POST 肯求,进行前后端交互。

@ResponseBody 注解相沿将的参数在 reqeust 体中,常常复返 json 模样给前端。

7、@PathVariable、@RequestParam、@RequestAttribute

@PathVariable 用来接管参数,如 /path/001, 可接管 001 算作参数

@GetMapping("/path/{id}")public String PathVariable(@PathVariable("id")String id){ return "id:"+id;}

@RequestParam 用来接管 URL 中的参数,如 /param?id=001, 可接管 001 算作参数

@GetMapping("/param")public String param(@RequestParam("id")String id){ return "id:"+id;}

@RequestAttribute 用于访谒由过滤器或阻止器创建的、事前存在的肯求属性,后果等同与 request.getAttrbute ()。

@GetMapping("/req/attr")public String reqAttr(@RequestAttribute("id")String id){ return "id:"+id;}

8、@ModelAttribute

主若是绑定肯求参数到指定对象上,此注解可被用于法子、参数上。

专揽在参数上,会将客户端传递过来的参数按称呼注入到指定对象中,而况会将这个对象自动加入到 modelMap 中,便于 view 层使用;

专揽在法子上,会在每一个 @RequestMapping 标注的法子前实施,如果有复返值,则自动将复返值加入到 ModelMap 中;

由于面前都摄取前后端辩别建设,故此注解相对用的较少,但关于一些在每次肯求前需要进行一些迥殊操作时。使用此注解照旧是个采取,比如进行协调的业务校验等,但使用此注解已毕雷同功能时需要珍惜,使用异设施用时,比如 callable 大概 DeferredResult 时,被此注解的法子会实施两次,因为异步肯求时,是挂起另一个线程去再行实施,关于树立了阻止器,它们的实施规章为:

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

三、service 层注解、捏久层注解

1、@Component、@Service、@Repository

这三者都是声名一个单例的 bean 类并纳入 spring 容器中,后两者其实都是剿袭于 @Component。

(1) @Component 最平凡的组件,不错被注入到 spring 容器进行管制。

通过这个注解的分层管制,就能将肯求处理,业务逻辑处理,数据库操作处理辩别出来,为代码解耦,也便捷了以后项观念眷注和建设。

是以咱们在时常建设中,如果能用 @Service, @Controller, @Repository 其中一个标注这个类的定位的工夫,就不要用 @Component 来标注。

(2) @Repository 作用于捏久层

(3) @Service 作用于业务逻辑层

常常一些类无法如实是使用 @service 如故 @Component 时,注解使用 @Component,比如 Redis 的树立类等。

2、@Transational

通过这个注解不错声明事务,不错添加在类上大概法子上。

在 spring boot 中 无须再单独树立事务管制,一般情况是咱们会在 servcie 层添加了事务注解toupaizipai,即可开缘由务。要珍惜的是,事务的开启只可在 public 法子上。而况主要事务切面的回滚边件。时常咱们树立 rollbackfor exception 时 ,如果在法子里拿获了很是就会导致事务切面树立的失效。