springMVC常用注解

136 阅读3分钟

启动类

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}) 表示该应用不连接数据库

@SpringBootApplication :包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan这三个注解

@EnableScheduling 开启定时任务功能

SpringBoot 注解@EnableScheduling定时任务详解enablescheduling注解的意思暴走的山交的博客-CSDN博客

@MapperScan("com.msatmb.equip.mapper") 扫描对应目录作为mapper,参数为要mapper接口的存放路劲,相当于该路劲下的所有接口添加@Mapper注解。

@EnableAspectJAutoProxy Spring AOP开启的标志 在启动类标记此注解,即可加载对应的切面类逻辑

控制器

@Controller 表示该类为控制器类

@RestController( = @Controller+@ResponseBody)


@RequestMapping("/XXX",method = RequestMethod.XXX) 映射url,若没有Rest标志,则返回值为templates下的html文件名

将该注解标注在类上,表示类中所有的响应请求的方法都将以该地址作为父路径

@GetMapping("url") = @RequestMapping("url",method = RequestMethod.GET)

常用于传递小型分散数据并刷新界面

@PostMapping("url") = @RequestMapping("url",method = RequestMethod.POST)

常用于传递JSON对象,插入数据

@PutMapping("url") = @RequestMapping("url",method = RequestMethod.PUT)

常用于传递JSON对象,更新数据

@DeleteMapping("url") = @RequestMapping("url",method = RequestMethod.DELETE)

常用于传递JSON对象,删除数据


@Autowired 完成自动按类型装配 ,常用于服务类,使其成为单例静态对象,当一个Component有多个构造方法时,需在某个构造方法上添加该注解以表示用该构造方法进行依赖注入

@Resource完成自动先按照变量名称,再按类型进行装配,常用于配置类

@Qualifier : 当有多个同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用


@ResponseBody :

(1)放在类名上 将控制器下的方法返回值改为json或string格式返回(@Controller注解控制器类下不加则返回ViewAndModel)

(2)放在方法申明上,将方法返回值改为json或string格式返回(@Controller注解控制器类下不加则返回ViewAndModel)

@RequestBody

放在形参前 表示将前端post的json对象分装为形参对象中(要求json中的变量在形参中能够匹配)

@RequestParam(XXX) 写在变量前面,表示将前端post的json对象匹配对象中的XXX属性,赋值给注解后面的形参(参考极简实例中的登录界面(1)post方法控制器类被注释的代码)

@ PathVariable 获取url中的{XXX}中的值,()中value为对应匹配的XXX,若都为空则按顺序匹配。


@ModelAttribute("XXX"):应用在有返回值的方法上,相当于将该方法的返回值添加到model的"XXX"属性上

@ModelAttribute :应用在形参上,说明了该方法参数的值将由model中取得。如果model中找不到,那么该参数会先被实例化,然后被添加到model中。在model中存在以后,请求中所有名称匹配的参数都会填充到该参数中(参考极简实例中的登录界面(1))

配置器

@Configuration:指明一个类为配置类,用于声明一个或多个@Bean方法

@Value(“${}”):将配置文件properties的属性读出来

@Value(“#{}”):读取bean对象的属性或方法的返回值

@Bean : 放在方法上,将方法返回结果作为一个Bean对象交给spring管理(用SpringUtil.getBean("beanName")获取Bean对象

@Slf4j : 注解在类上;为类提供一个 属性名为log 的 slf4j 日志对像

@log4j : 注解在类上;为类提供一个 属性名为log 的 log4j 日志对像

eg:@Value("redis://"+"spring.redis.host"+":"+"{spring.redis.host}"+":"+"{spring.redis.port}")

实体类

@Data【取代所有get和set方法】

@AllArgsConstructor【取代全参构造函数】

@NoArgsConstructor【取代无参构造函数】

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8"):对应前端json格式(常用于日期)

@TableName("t_book") : 映射数据库表

@TableField(exist = false) : 表示该属性不与数据库表映射

@TableId(type = IdType.ASSIGN_ID) : 表示该属性为主键(便于BaseMapper查找对应的主键)

服务类

@Service:将类注册为服务类(Bean对象)

DAO

@Mapper :将接口注册为MapperBean对象,一般写在Dao接口上