1、@SpringBootApplication
主类(入口类)的注解。(@Configuration,@EnableAutoConfiguration , @ComponentScan)
2、@Repository
DAO层注解,DAO层中接口继承JpaRepository<T,ID extends Serializable>,需要在build.gradle中引入相关jpa的一个jar自动加载。
3、@Service
ServiceImpl上面注解,注意不是Service接口,而是接口的实现类上。
4、@Entity
SpringMVC中model层相当于SpringBoot中的entity层,@Entity注解在实体类(domain层)上面。
@Table(name ="数据库表名"),这个注解也注释在实体类上,对应数据库中相应的表。
@Id、@Column注解用于标注实体类中的字段,pk字段标注为@Id,其余@Column。
5、@RestController
Controller层注解,@RestController相当于@Controller + @ResponseBody
特殊的,若该控制器用于跳转JSP页面,必须用@Controller标注,否则不予跳转。
6、@RequestMapping
@RequestMapping是一个用来处理请求地址映射的注解,用于类或方法上,用于类上,表示类中所有响应请求的方法都是以该路径为父路径;
自带属性:
path 或者value:请求的地址;
method:请求的方法;->具体写法:method = RequestMethod.POST,如果不确定就不要写
*headers:指定request中必须包含某些指定的header值,才能让该方法处理请求;
*params:指定request中必须包含某些参数值是,才让该方法处理;
*consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
*produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
注:可以直接写@PostMapping或者@GetMapping来替换@RequestMapping
7、@Autowired
自动装配,自动导入依赖的beans,一般自动注入*Mapper或者*Service到另一层。
8、@PathVariable
用来处理占位符,类似user/{id}的路径,参数中需要@PathVariable(value="id") String id,为了避免犯错,尽量命名相同。
9、@ResponseBody
Controller方法返回结果直接写入HTTP response body中,一般在异步ajax获取数据时使用。
也就是后台向前台返回结果的时候写此标签。
10、@RequestBody
对json格式的参数转换为Java类型。
例如以下代码:
jsp中:
var formData = JSON.stringify($("#epicForm").serializeJson());
$.ajax({
url: "<%=basePath%>" + "/epics/epic/save",
type:"POST",
contentType: "application/json",
data: formData,
success:function(data){
alert("添加成功");
window.location.href = "<%=basePath%>/epics/epic/selAllEpic"
}
});
Controller中:
@RequestMapping(value = "/save", method = RequestMethod.POST)
public void add(@RequestBody Epic epic, HttpServletRequest request) {
log.info("this is v1 新增逻辑");
log.info("this is v1" + request.getRequestURL());
epicService.save(epic);
System.out.printf("添加成功");
}
注:Controller类上面用的@RestController所以不需要用@ResponseBody
11、 @RequestParam
用在方法参数之前@RequestParam String id =request.getParameter("id");
尽量不用...太low。
网友评论