SSM整合-其他问题
@Slf4j
想要输出的类上使用@Slf4j注解,调用log对象的方法(例如info),使用{}作为占位符打印日志
1 2 3 4 5 6 7
| @RestController @ComponentScan("com.xiaobai.controller") @RequestMapping("schedule") @Slf4j public class ScheduleController { log.info("查询到的数据为:{}", r); }
|
PageBean
尚硅谷提供了一个实体类PageBean,此实体类可以用于PageHelper插件查询之后,使用PageInfo获取到分页信息后,封装到此实体类中
我们在之前学习的微头条项目中,使用Vo对象来接收查询到的分页参数
1 2 3 4 5 6 7 8 9
| @Data @NoArgsConstructor @AllArgsConstructor public class PageBean<T> { private int currentPage; private int pageSize; private long total; private List<T> data; }
|
R(Result包装对象)
在JavaWeb中,我们也有这样的类,封装了响应业务码,还有枚举类型的响应状态信息
尚硅谷提供了一个包装对象,但这个简单得多,只有成功(200),和失败(500)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| package com.xiaobai.util;
public class R {
private int code = 200;
private boolean flag = true;
private Object data;
public static R ok(Object data) { R r = new R(); r.data = data; return r; }
public static R fail(Object data) { R r = new R(); r.code = 500; r.flag = false; r.data = data; return r; }
public int getCode() { return code; }
public void setCode(int code) { this.code = code; }
public boolean isFlag() { return flag; }
public void setFlag(boolean flag) { this.flag = flag; }
public Object getData() { return data; }
public void setData(Object data) { this.data = data; } }
|
Service分页查询处理
1 2 3 4 5 6 7 8 9 10 11 12
| public R page(int pageSize, int currentPage) { PageHelper.startPage(currentPage, pageSize); List<Schedule> schedules = scheduleMapper.queryList(); PageInfo<Schedule> pageInfo = new PageInfo<>(schedules); PageBean<Schedule> schedulePageBean = new PageBean<>(currentPage,pageSize, pageInfo.getTotal(),pageInfo.getList()); return R.ok(schedulePageBean); }
|
同源禁止策略的解决方案*
我们在JavaWeb中解决这个问题的方式,是建立一个Filter过滤器
@CrossOrigin
在ssm项目中,在Controller层类或方法上面使用@CrossOrigin注解,即可允许跨域访问