发表于: 2020-06-23 23:57:35
1 1451
今天完成的事情;
spring测试servise方法
显示

spring测试controller
这个是利用junit的MockMvc来实现的
获取的controller结果
感觉好麻烦 还不如写完直接postman
springboot怎么打日志
spring-boot-start 自带的有日志功能
Logger logger= LoggerFactory.getLogger(getClass());
直接调用即可
logger.trace("这是一个trace日志...");
logger.debug("这是一个debug日志...");
// SpringBoot默认是info级别,只会输出info及以上级别的日志
logger.info("这是一个info日志...");
logger.warn("这是一个warn日志...");
logger.error("这是一个error日志...");
另外两个没打出来是因为权限不够
yml设置下输出磁盘
#以下是电脑的绝对路径 :
logging:
file:
path: E:/springbootlog
spring boot的请求拦截器
这个方法 /* 拦截了所有请求
但排除了toLogin 和 login的页面
@Configuration
public class MyWebMvcConfigurerAdapter implements WebMvcConfigurer {
/**
* 以前要访问一个页面需要先创建个Controller控制类,再写方法跳转到页面
* 在这里配置后就不需要那么麻烦了,直接访问http://localhost:8080/toLogin就跳转到login.jsp页面了
* @param registry
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/toLogin").setViewName("login");
}
/**
* 拦截器在这里
*
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 如果有静态资源!!!!在拦截器那里排除静态资源的请求路径 不然回拦截静态资源
// registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatternss("/toLogin","/login","/assets/**","/js/**");
// addPathPatterns 用于添加拦截规则
// excludePathPatterns 用户排除拦截
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/toLogin", "/login","/logging");
}
}
登录的页面 返回session,session里包含student数据
@RequestMapping(value = "/login",method = RequestMethod.POST)
public Map<String,Object> login(HttpServletRequest request, HttpServletResponse response){
Map<String,Object> map =new HashMap<String,Object>();
String img =request.getParameter("img");
String name =request.getParameter("name");
if(!img.equals("") && name!=""){
student student =new student();
student.setImg(img);
student.setName(name);
request.getSession().setAttribute("student",student);
map.put("result","1");
}else{
map.put("result","0");
}
return map;
}
一个拦截类 这个和前面一样
判断session是否为空 来返回boolean 是否拦截
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
boolean flag =true;
student student=(student)request.getSession().getAttribute("student");
if(null==student){
response.sendRedirect("toLogin");
flag = false;
}else{
flag = true;
}
return flag;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
运行没问题
添加了一个IDEA 插件 可以实现热部署
效果:
项目部署后
如果修改了jsp页面 和class代码
项目也会随之跟着改变,不需要重新再部署一遍
明天计划的事情;
springCloud
评论