zoukankan      html  css  js  c++  java
  • 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):用在方法上表示遇到这个异常就执行以下方法

  • 相关阅读:
    228. Summary Ranges
    227. Basic Calculator II
    224. Basic Calculator
    222. Count Complete Tree Nodes
    223. Rectangle Area
    221. Maximal Square
    220. Contains Duplicate III
    219. Contains Duplicate II
    217. Contains Duplicate
    Java编程思想 4th 第4章 控制执行流程
  • 原文地址:https://www.cnblogs.com/blackdd/p/12322332.html
Copyright © 2011-2022 走看看