1. @PostConstruct
//项目运行起来时不管定时任务中cron表达式的时间,直接运行一次,目的 启动项目直接执行
@Component
public class PostConstructTest {
//方法1
public @PostConstruct void init(){
System.out.println("---------------------------");
}
//方法2 可以 把注解拿出来
@PostConstruct
public void init(){
System.out.println("---------------------------");
}
}
2.@deprecated
可以放到接口上 或者类上,不影响使用,就是一个说明 会带个划线
https://editor.csdn.net/md/?articleId=122679086 这是我另一帖子写的这个注解
3.TODO
相当于一个标记作用 比如说 你需要调别人的接口 但是别人还没写好 就先标记一下
TODO类属于com.sun.xml.internal.bind.v2包
效果图
具体可以看这个文章
4. @InitBinder
作用:@InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或者其他,只对当前的Controller有效。
简单点就是说吧前端给的类型 转换成我们要的类型
用途二: 参数绑定
参考链接
https://zhuanlan.zhihu.com/p/115902823
https://blog.csdn.net/zengxianxue/article/details/78567544
https://blog.csdn.net/wang0907/article/details/108357696
@InitBinder
public void initBinder(WebDataBinder binder)
{
// Date 类型转换
binder.registerCustomEditor(Date.class, new PropertyEditorSupport()
{
@Override
public void setAsText(String text)
{
setValue(DateUtils.parseDate(text));
}
});
}
//或者
/**
* @InitBinder标注的方法,只针对当前Controller有效!
* 如果没有该方法,则会产生400状态码!
* MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.util.Date!
*/
@InitBinder
public void InitBinder(WebDataBinder binder) {
//前端传入的时间格式必须是"yyyy-MM-dd"效果!
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor dateEditor = new CustomDateEditor(df, true);
binder.registerCustomEditor(Date.class, dateEditor);
}