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):用在方法上表示遇到这个异常就执行以下方法

posted on 2020-02-17 16:25  黑子菜园  阅读(196)  评论(0编辑  收藏  举报

导航