Java注解部分整理

Java注解本质是一个类,使用时也需要import引入,这里只记录了注解作用以及使用,无特殊情况概不记录包位置

@SpringBootApplication 作用于类,其注解的类是整个程序的启动入口

@Service 一般情况下使用的注解,表示类

@Controller Web中使用的注解,代替Serve

@Repository 作用于持久化相关的bean

@Component 通用注解,上面三个都拓展于此

@Autowired 自动装载bean,其下的对象会自动寻找相应的bean并装载(作用于类的属性)

@Resource 也可以自动装载bean,且支持byName和byType方式注入(作用于类的属性)

@Qualifier 指定自动装配的对象名称,通常与@Autowired联合使用

@PostConstruct 作用于方法,其下的方法,在对应Bean启用时自动执行(因此只能放在Bean下面)

@PreDestroy 作用于方法 指定Bean销毁之前调用的方法

@RequestMapping(“/hello”) 作用于方法,表示路由(即url显示)

@GetMapping(“/html”) 作用于方法,对于Get方法的路由,相当于RequestMapping的子集

@PostMapping(“”) 作用于方法,对于Post方法的路由 与GetMapping不同的是只接收 http method为post请求的数据

@PathVariable(value=) 作用于参数,用于接收URL中的动态参数即Mapping内的{}内数据

@RequestParam( name=”pageNum”,required = false ) 作用于参数,表示url传递参数即url后的 ?id=xxx 添加后此参数值为对应传递参数值,前一参数表示名字,后一参数表示是否必须,可直接简写名字表示必须

@RequestBody 作用于参数,用于接收JSON参数

@ResponseBody 作用于方法,表示返回为JSON数值即表面为API,可放在Mapping下

@RestController 同等于@Controller加上@ResponseBody 表示这个control不会渲染页面而是返回数据

@Value(“${}”) 作用于类属性,表示使用自定义配置项,即配置文件application.properties 中自定义项目 如user.name=”aa”

@Scope 指定bean的作用域

@CookieValue(“name”) 作用于 参数,通过写入cookie名字传入cookie

@NotNull 作用于类的属性,不允许为null对象

@AssertTrue 作用于类属性是否为 true

@Size(value=) 作用于类属性约定字符串的长度

@Min(value=) 作用于类属性 字符串的最小长度

@Max(value=) 作用于类属性 字符串的最大长度

@Email 作用于类属性 是否是邮箱格式

@NotEmpty作用于类属性,不允许为null或者为空,可以用于判断字符串、集合,比如 Map、数组、List

@NotBlank 作用于类属性,不允许为 null 和 空格

@Valid 作用于类属性 表示检验是否符合要求,与上面的注解一起使用

@Mapper 作用于类 放在DAO层表示映射至xml

@Param 作用于参数 当DAO层接受普通参数(即除了DO对象)时写此注解

@Select(“”) 作用于方法 默认参数为SQL 表示为 select SQL方法

@Insert(“”) 作用于方法 默认参数为SQL 表示为 Insert SQL方法

@Options(“”) 作用于方法 作用于Insert之后,表示主键设置 三个参数 useGeneratedKeys=bool:是否运行使用自增主键 keyColumn=“”:设置表的主键 keyProperty=“”:设置DO模型主键

@Update(“”) 作用于方法 默认参数为SQL 表示为 update SQL方法

@Delete(“”) 作用于方法 默认参数为SQL 表示为 delete SQL方法

@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”) 作用于参数,用于把字符串参数转化为日期类型(本身后面添加的参数就是 LocalDateTime类型)

@JsonSerialize(using = xxxxx.class) 作用于类属性,将传入的数据转换成相应类型,一般使用 NullSerializer.class 用于返回JSON结果时,忽略(即不出现)此数据(用于如密码)。

@JsonFormat(pattern=) 作用于类属性,将数据结构转换,多作用于Date类型,用于改变时间格式如 =“yyyy-MM-dd”

@JsonProperty(“name”) 作用于类属性,当JSON输出时,自定义字段名称