springBoot常用注解
springboot启动类写法:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
1、@RestController 和 @Controller 指定一个类,作为控制器的注解
@RestController 是spring4新加入的注解,原来返回json需要@ResponseBody和@Controller配合,现在@RestController是他俩的组合注解。
@ResponseBody会自动将控制器方法的返回值写入到Http响应中,且一定要与@Controller注解联合使用
@Controller 是@Component注解的延伸,spring会自动扫描并配置被该注解标注的类(@Component没有明确的业务范围,只是通知spring被此注解标注的类要纳入到spring bean容器并进行管理)
@Service、@Repository(标注DAO层)都是@Component注解的延伸
2、@RequestMapping(value = "URL或路径别名",method = RequestMethod.GET) 方法级别的映射注解 --->springMVC用很多
@RequestMapping 注解的主要用途是将web请求与请求处理类中的方法进行映射。RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个类
提供对该注解的支持。
@GetMapping是一个组合注解,相当于@RequestMapping的配置属性Method = RequestMethod.GET,
同理还有@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping
3、@RequestBody在处理请求方法的参数列表中使用,将请求主体中的参数绑定到一个对象中(通过请求主体的参数名与对象属性名进行匹配并绑定值),一般与RequestMapping一起使用
与@Valid注解组合使用对请求主体中的参数进行校验:public User createUser(@Valid @RequestBody User user){ xxx }
4、@EnableAutoConfiguration 和@SpringBootApplication 是类级别的注解,引用spring-boot-starter-web依赖,则默认自动配置springMVC和tomcat容器
@EnableAutoConfiguration:Spring Boot会自动根据你jar包的依赖来自动配置项目;
@SpringBootApplication 是以下三个注解的总和:@Configuration、@EnableAutoConfiguration、@ComponentScan
5、@Configuration 类级别注解(不能是final类,不能是匿名类),一般用来标识main方法所在的类,完成元数据bean的初始化
@Configuration 作用在类上等价为Spring 的xml文件的<beans>
@ComponentScan 类级别注解,自动扫描加载所有spring组件,一般用在main方法的类上,告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器,例如:@ComponentScan (basePackage = "com.huawei.core.domain")
使用@ComponentScan 注解等价于使用了<context:component-scan base-package = "com.huawei.dao.*">
@Autowire 一般与@ComponentScan 结合使用,自动注入一个service或DAO级别的bean
@ImportResource 类级别的注解,当必须使用一个xml的配置时,使用它与@Configuration 来标识这个文件资源的类
6、事务 @Transactional注解 用在方法就是方法事务,用在类上就是类事务
7、@PathVariable注解是将方法中的参数绑定到请求URI的模板变量上,可以通过@RequestMapping指定URI的模板变量(模板变量名需要使用 { } 进行包裹),然后使用@PathVariable绑定方法的参数到模板变量上。
例子:
@GetMapping(“/users/{ id} /roles / {roleid}”)
public Role getUserRole( @PathVariable(name="id") long id, @PathVariable(name="roleid") long roleid) throws exception{ xxx }
模板变量名与方法的参数名一致时,@PathVariable可省略别名的定义。
@GetMapping(“/users/{ id} /roles / {roleid}”)
public Role getUserRole( @PathVariable long id, @PathVariable long roleid) throws exception{ xxx }
注:当参数是非必须时,@PathVariable可设置属性require = false
8、@RequestParam 注解 将方法的参数与web请求传递的参数进行绑定,可访问HTTP请求参数的值
@GetMapping
public Role getUserRole( @RequestParam(name="id") long id, @RequestParam(name="roleid") long roleid) throws exception{ xxx }
其他属性与PathVariable相同,当传递额参数为空时,可通过defaultValue 设置默认值
@GetMapping
public Role getUserRole( @RequestParam(name="id",defaultValue = "0") long id, @RequestParam(name="roleid",defaultValue = "0") long roleid) throws exception{ xxx }
9、@ModelAttribute 注解可通过模型索引名称来访问已经存在于控制器中的model,用法与@PathVariable、@RequestParam类似
当@ModelAttribute注解方法时,spring会将方法的返回值绑定到具体的model上。先执行@ModelAttribute标注的方法再执行具体的处理方法
10、@CrossOrigin 注解将为请求处理类或处理方法提供跨域调用支持
11、@ControllerAdvice :包含@Component ,统一处理异常
12、@ExceptionHandler(Exception.class):用在方法上表示遇到这个异常就执行以下方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」