【Java开发注解】

1、@RequestParam

定义:

@RequestParam中的required属性默认为true(默认值也是true),代表该请求参数必须传递,如果不 传递将报错

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name", required = false) String
username, Integer age){
System.out.println(username+ ":" + age);
return "OK";
}

@RequestParam(defaultValue="默认值") //设置请求参数默认值

作用:

在简单参数中使用:如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射

2、@ResponseBody

@ResponseBody注解的作用是将controller的方法返回的对象,转换为json格式的数据返回给前端

  • 类型:方法注解、类注解
  • 位置:书写在Controller方法上或类上
  • 作用:将方法返回值直接响应给浏览器
    • 如果返回值类型是实体对象/集合,将会转换为JSON格式后在响应给浏览器

3、组合注解

@RestController = @Controller + @ResponseBody

类上有@RestController注解或@ResponseBody注解时:表示当前类下所有的方法返回值做为响应数据

  • 方法的返回值,如果是一个POJO对象或集合时,会先转换为JSON格式,在响应给浏览器

4、IOC容器创建对象注解

注解说明位置
@Controller@Component的衍生注解标注在控制器类上
@Service@Component的衍生注解标注在业务类上
@Repository@Component的衍生注解标注在数据访问类上(由于与mybatis整合,用的少)
@Component声明bean的基础注解不属于以上三类时,用此注解

注意事项:

  • 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。
  • 使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller。

5、@Autowired

@Autowired注解,默认是按照类型进行自动装配的(去IOC容器中找某个类型的对象,然后完成注入操作)

6、@Options

  • 默认情况下,执行插入操作时,是不会主键值返回的。如果我们想要拿到主键值,需要在Mapper接口中的方法上添加一个Options注解,并在注解中指定属性useGeneratedKeys=true和keyProperty=“实体类属性名”
    在这里插入图片描述

7、@Results

通过 @Results及@Result 进行手动结果映射,字段名和实体类属性名之间的对应关系

@Results({@Result(column = "dept_id", property = "deptId"),
          @Result(column = "create_time", property = "createTime"),
          @Result(column = "update_time", property = "updateTime")})
@Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp where id=#{id}")
public Emp getById(Integer id);

8、@Param

在springBoot的1.x版本/单独使用mybatis(使用@Param注解来指定SQL语句中的参数名)

在这里插入图片描述

在编译时,生成的字节码文件当中,不会保留Mapper接口中方法的形参名称,而是使用var1、var2、…这样的形参名字,此时要获取参数值时,就要通过@Param注解来指定SQL语句中的参数名
在这里插入图片描述

9、@Slf4j

在这里插入图片描述

10、@PathVariable

在controller中接收请求路径中的路径参数

11、@ConfigurationProperties

都是用来注入外部配置的属性的

在这里插入图片描述

12、 @WebFilter 和@ServletComponentScan

配置过滤器:Filter类上加 @WebFilter 注解,配置拦截资源的路径。引导类上加 @ServletComponentScan 开启Servlet组件支持。

13、@RestControllerAdvice和@ExceptionHandler

@RestControllerAdvice注解:代表定义了一个全局异常处理器。

@ExceptionHandler:通过@ExceptionHandler注解当中的value属性来指定我们要捕获的是哪一类型的异常。

@RestControllerAdvice
public class GlobalExceptionHandler {

 //处理异常
 @ExceptionHandler(Exception.class) //指定能够处理的异常类型
 public Result ex(Exception e){
     e.printStackTrace();//打印堆栈中的异常信息

     //捕获到异常之后,响应一个标准的Result
     return Result.error("对不起,操作失败,请联系管理员");
 }
}

@RestControllerAdvice = @ControllerAdvice + @ResponseBody

处理异常的方法返回值会转换为json后再响应给前端

14、@Transactional

@Transactional作用:就是在当前这个方法执行开始之前来开启事务,方法执行完毕之后提交事务。如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作。

@Transactional注解:我们一般会在业务层当中来控制事务,因为在业务层当中,一个业务功能可能会包含多个数据访问的操作。在业务层来控制事务,我们就可以将多个数据访问操作控制在一个事务范围内。

15、@Configuration

16、@Scope

  • 可以借助Spring中的@Scope注解来进行配置作用域

在这里插入图片描述

17、@Lazy

@Lazy //延迟加载(第一次使用bean对象时,才会创建bean对象并交给ioc容器管理)

18、 @EnableXxxxx注解

让第三方依赖自己指定bean对象和配置类

19、@JsonInclude

@JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理,

  • 将该标记放在属性上,如果该属性为NULL则不参与序列化
  • 如果放在类上边,那对这个类的全部属性起作用
  • Include.Include.ALWAYS 默认
  • Include.NON_DEFAULT 属性为默认值不序列化
  • Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化
  • Include.NON_NULL 属性为NULL 不序列化

@JsonInclude(JsonInclude.Include.ALWAYS) ——该注解不设定值的情况下,默认使用 ALWAYS

此注解适用于类标头,可以对实体类引用会自动按规则过滤实体类生成的json数据,也可以通过实现Serializable接口来标识此注解,用于对类的最终json结构进行过滤处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值