springboot常用注解

1.@RestController 相当@Controller+@ResponseBody

@RestController只返回对象,对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中,这种情况属于
 RESTful Web服务,这也是目前日常开发所接触的最常用的情况(前后端分离)

2.@Autowired
@Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用
@Component 注解标注。
@Repository : 对应持久层即 Dao 层,主要用于数据库相关操作。
@Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。
@Controller : 对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前端页面。


3.5 种常见的请求类型:
GET :请求从服务器获取特定资源。举个例子:GET /users(获取所有学生)
POST :在服务器上创建一个新的资源。举个例子:POST /users(创建学生)
PUT :更新服务器上的资源(客户端提供更新后的整个资源)。举个例子:PUT /users/12(更新编号为 12 的学生)
DELETE :从服务器删除特定的资源。举个例子:DELETE /users/12(删除编号为 12 的学生)
PATCH :更新服务器上的资源(客户端提供更改的属性,可以看做作是部分更新),使用的比较少,这里就不举例子了。
@GetMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.GET)
@PostMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.POST)
@PutMapping("/users/{userId}") 等价于@RequestMapping(value="/users/{userId}",
method=RequestMethod.PUT)

4.@PathVariable用于获取路径参数,@RequestParam用于获取查询参数。
@RequestBody
用于读取 Request 请求(可能是 POST,PUT,DELETE,GET 请求)的 body 部分并且Content-Type 为
 application/json 
格式的数据,接收到数据之后会自动将数据绑定到 Java 对象上去。系统会使用HttpMessageConverter
或者自定义的HttpMessageConverter将请求的 body 中的 json 字符串转换为 java 对象。

5.@SpringBootApplication

@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制
@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在
的包下所有的类。
@Configuration:允许在 Spring 上下文中注册额外的 bean 或导入其他配置类

6.@Scope
四种常见的 Spring Bean 的作用域:
singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。
prototype : 每次请求都会创建一个新的 bean 实例。
request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。

@Configuration
@Value("${property}")
@ConfigurationProperties读取配置信息并与 bean 绑定

在实体类加验证注解@NotNull@Email
在controller传进来需要验证的参数上加上了@Valid注解,如果验证失败,它将抛出
MethodArgumentNotValidException。

全局处理 Controller 层异常
@ControllerAdvice :注解定义全局异常处理类
@ExceptionHandler :注解声明异常处理方法


@Transactional 注解一般用在可以作用在类或者方法上。
作用于类:当把@Transactional 注解放在类上时,表示所有该类的public 方法都配置相同的事务属性信息。
作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。

你可能感兴趣的:(springboot,spring)