package com.de.debook.init; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @Component public class RunLoadPage implements CommandLineRunner { @Override public void run(String... args) throws Exception { try { Runtime.getRuntime().exec("cmd /c start http://localhost:8080/user/login.html"); } catch (Exception ex) { ex.printStackTrace(); } } }
时间: 2023-12-31 15:04:23 浏览: 76
这段代码是一个 Spring Boot 应用程序中的组件,它实现了 CommandLineRunner 接口,并覆盖了它的 run 方法。在应用程序启动时,Spring Boot 会自动调用 CommandLineRunner 的 run 方法。
这个组件的作用是在应用程序启动时,自动打开一个浏览器窗口,访问 http://localhost:8080/user/login.html 页面。具体实现是通过 Runtime.getRuntime().exec() 方法执行一个命令,该命令会打开默认浏览器并访问指定的 URL。
需要注意的是,这种自动打开浏览器的方式只适用于部署在本地开发环境的应用程序,在生产环境下不建议使用。
相关问题
package com.de.debook.interceptor; import com.de.debook.entity.User; import com.de.debook.constant.WebConstant; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @Component public class AuthorityInterceptor implements HandlerInterceptor { // 权限拦截器 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); User user = (User) session.getAttribute(WebConstant.SESSION_KEY_USER); // 用户未登录状态返回登录页面 if (user == null) { response.sendRedirect("/user/login.html"); return false; } return true; } @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 { } }
这段代码是一个权限拦截器,用于拦截未登录用户的访问。在 preHandle 方法中,首先获取 HttpSession 中的 User 对象,如果 User 为 null,说明用户未登录,此时将请求重定向到登录页面,并返回 false,拦截请求。如果 User 不为 null,说明用户已经登录,放行请求,返回 true。其他两个方法没有实现,不做处理。
package com.de.debook.controller; import com.de.debook.bo.ResponseBean; import com.de.debook.constant.WebConstant; import com.de.debook.utils.FileUploadUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.util.Map; @RestController public class UploadFileController { private static final int FILE_SIZE_MAX = 20 * 1024 * 1024; // 上传限制大小 /** * @param multipartFile * @description: 通用文件上传处理器 * @return: java.util.Map<java.lang.String , java.lang.Object> */ @RequestMapping(value = "/uploadFile", produces = "application/json;charset=UTF-8") public Map<String, Object> fileUpload(@RequestParam("file") MultipartFile multipartFile) { ResponseBean responseBean = new ResponseBean(); if (multipartFile != null) { String realName = multipartFile.getOriginalFilename(); // 原始文件名 String suffix = FileUploadUtils.fileSuffix(realName); // 文件名后缀 String tmpFileName = FileUploadUtils.createTmpFileName(suffix); // 生成保证不重复的临时文件名 if (multipartFile.getSize() > FILE_SIZE_MAX) { responseBean.putError("上传失败:文件大小不得超过20MB"); return responseBean.getResponseMap(); } File tmpFile = new File(WebConstant.FILE_STORAGE_ROOT,tmpFileName); try { multipartFile.transferTo(tmpFile); // 写入本地 responseBean.putData("data", "/images/" + tmpFileName); } catch (IOException e) { responseBean.putError("上传失败:" + e.getMessage()); e.printStackTrace(); } } return responseBean.getResponseMap(); } }
这是一个基于Spring框架开发的文件上传处理器,它接收一个MultipartFile类型的参数,即上传的文件,然后进行处理,最终返回一个包含上传结果的ResponseBean对象。其中,文件大小限制为20MB,超过限制则返回上传失败的信息;上传成功后,会将文件写入到本地,并将其访问路径存储到ResponseBean中返回。
阅读全文