@RestController
@RequestMapping("/admin")
@Slf4j
public class ActivityController {
@Autowired
ActivityService activityService;
/**
* 活动添加 仅添加
*/
@PostMapping("activity_add")
public ResultVO ActivityAdd(@Valid ActivityForm activityForm,
BindingResult bindingResult,
HttpSession session){
····
}
/**
* 返回结果试图
*/
@GetMapping("activity")
public ModelAndView activity() {
return new ModelAndView("admin/activity");
}
1 @RestController(以及与@controller的区别)
1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则需要加@ResponseBody注解
.@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据。不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
2 @RequestMapping
@PostMapping @GetMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
(以上代码若添加活动则访问代码 /admin/activity_add) (admin即为父路径)
@GetMapping 是一个组合注解,它所扮演的是 @RequestMapping(method =RequestMethod.GET) 的一个快捷方式。
方法级别的注解变体有如下几个:
- @GetMapping
- @PostMapping
- @PutMapping
- @DeleteMapping
- @PatchMapping
3 @Slf4j
注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
pom 引用jar
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
4 @Autowired
它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
通过 @Autowired的使用来消除 set ,get方法。
5 @Entity
实体类注解
6 @Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Id:
@Id 标注用于声明一个实体类的属性映射为数据库的主键列。该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。
@Id标注也可置于属性的getter方法之前。
@GeneratedValue:
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。
7@NotEmpty @NotNull
不能为空,一个代表字符串类型,一个int型
@NotEmpty(message = "评分细则必填")
private String scoreRule;//评分细则
@NotNull(message = "参赛组数必填")
private Integer groupNum;
8 @Service
@Service对应的是业务层Bean,例如:
@Service
public class ActivityServiceImpl implements ActivityService {
9.@Transactional 事务
只需在方法加上 @Transactional
注解就可以了。
@Transactional
注解只能应用到 public 方法才有效