SSM整合-其他问题
SSM整合-其他问题
@Slf4j
想要输出的类上使用@Slf4j注解,调用log对象的方法(例如info),使用{}
作为占位符打印日志
@RestController
@ComponentScan("com.xiaobai.controller")
@RequestMapping("schedule")
@Slf4j
public class ScheduleController {
log.info("查询到的数据为:{}", r);
}
PageBean
尚硅谷提供了一个实体类PageBean,此实体类可以用于PageHelper插件查询之后,使用PageInfo获取到分页信息后,封装到此实体类中
我们在之前学习的微头条项目中,使用Vo对象来接收查询到的分页参数
@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)
package com.xiaobai.util;
public class R {
private int code = 200; //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分页查询处理
public R page(int pageSize, int currentPage) {
// 调用分页插件
PageHelper.startPage(currentPage, pageSize);
// 查询
List<Schedule> schedules = scheduleMapper.queryList();
// 分页数据装配
PageInfo<Schedule> pageInfo = new PageInfo<>(schedules);
// 封装pageBean
PageBean<Schedule> schedulePageBean = new PageBean<>(currentPage,pageSize, pageInfo.getTotal(),pageInfo.getList());
// 封装R
return R.ok(schedulePageBean);
}
同源禁止策略的解决方案*
我们在JavaWeb中解决这个问题的方式,是建立一个Filter过滤器
@CrossOrigin
在ssm项目中,在Controller层类或方法上面使用@CrossOrigin注解,即可允许跨域访问