首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >4_Springboot(四) 常用插件

4_Springboot(四) 常用插件

作者头像
张哥编程
发布2024-12-13 14:42:49
发布2024-12-13 14:42:49
2850
举报
文章被收录于专栏:云计算linux云计算linux

4_Springboot(四) 常用插件

一、Springboot热部署

每当修改了java代码或者是页面代码时,都需要重启服务,很麻烦。

热部署作用:检测到代码发生变化时,自动重新部署项目并重启。

在pom.xml中配置启用热部署

代码语言:javascript
复制
		<!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <!-- 是否启用热部署 -->
            <optional>true</optional>
        </dependency>

修改项目配置

S4.png
S4.png

二、通用Mapper

添加依赖关系

代码语言:javascript
复制
        <!-- 通用Mapper -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

添加配置

代码语言:javascript
复制
mapper:
  mappers: tk.mybatis.mapper.common.Mapper
  identity: mysql
  not-empty: true
  style: normal  # lastName

使用

接口继承通用Mapper

代码语言:javascript
复制
@Mapper
public interface CourseDao extends tk.mybatis.mapper.common.Mapper<Course> {
}

在service中调用通用mapper中得方法

代码语言:javascript
复制
@Service
public class CourseService {

    @Resource
    CourseDao courseDao;

    public List<Course> findAll(){
       return courseDao.selectAll();
    }

    public int deleteById(Integer tid){
        return courseDao.deleteByPrimaryKey(tid);
    }
}

三、PageHelper

添加依赖关系

代码语言:javascript
复制
		<!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper </groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.12</version>
        </dependency>

添加配置

代码语言:javascript
复制
pagehelper:
  helper-dialect: mysql   # 数据库方言
  offset-as-page-num: true
  support-methods-arguments: true  # 方法参数中包含pageNum,pageSize参数时,自动进行分页
  params: count=coutSql
  reasonable: true  # 传递的pageNum>totalpage时,pageNum=totalpage

使用

代码语言:javascript
复制
    @RequestMapping("selectAll/{pageNum}/{pageSize}")
    @ResponseBody
    public PageInfo selectAll(@PathVariable("pageNum") Integer pageNum,@PathVariable("pageSize") Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<Course> list = courseService.selectAll();
        PageInfo pageInfo = new PageInfo(list);
        return pageInfo;
    }

四、文件上传/下载

文件上传

方式一
代码语言:javascript
复制
    @RequestMapping("upload")
    public String upload(@RequestParam("photo") MultipartFile[] photo) throws IOException {
        // 是否有文件
        for(MultipartFile f:photo){
            String originalFilename = f.getOriginalFilename();
            if(!"".equals(originalFilename)){
                // 保存文件路径。重命名
                // 1.判断文件路径是否存在,不存在创建
                // 2.重命名
                File file = new File(filepath + originalFilename);

                // 另存为
                f.transferTo(file);
            }
        }
        return "ok";
    }
方式二
代码语言:javascript
复制
    @PostMapping("fileupload")
    public String fileupload(@RequestParam("photo") MultipartFile photo, Model model) {
        // 1.判断是否有上传得文件
        if (photo.isEmpty()) {
            model.addAttribute("msg", "上传文件为空");
        } else {
            // 2.文件上传
            // 获取保存得新文件路径
            // 重命名
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            String newFileName = sdf.format(new Date()) + photo.getOriginalFilename();
            Path path = Paths.get("d://" + newFileName);
            try {
                Files.write(path, photo.getBytes());
                model.addAttribute("msg", "上传成功");
            } catch (IOException e) {
                model.addAttribute("msg", "上传失败");
                e.printStackTrace();
            }
        }
        return "status";
    }

文件下载

代码语言:javascript
复制
	@RequestMapping("/download")
    public void download(String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 文件
        File file = new File(filepath + fileName);
        // 读取源文件,响应浏览器
        FileInputStream fileInputStream = new FileInputStream(file);

        String mimeType = request.getSession().getServletContext().getMimeType(fileName.substring(fileName.lastIndexOf(".")));
        System.out.println(mimeType);

        // 根据下载文件得类型,内容类型不一样
        response.setContentType(mimeType);
        // 保存文件.fileName浏览器下载保存文件时得文件名
        response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("下载文件" + fileName, "UTF-8"));

        ServletOutputStream outputStream = response.getOutputStream();

        FileCopyUtils.copy(fileInputStream, outputStream);
    }

五、虚拟路径映射

springboot访问磁盘下得文件

web项目,浏览器不能直接访问绝对路径,只能访问相对路径。

配置虚拟路径

代码语言:javascript
复制
// 将当前类注册为配置类 
@Configuration 
public class UploadFilePathConfig implements WebMvcConfigurer {
	
	// 配置虚拟路径    
	@Override    
	public void addResourceHandlers(ResourceHandlerRegistry registry) {        
		// /upload/**对外开放得路径        
		// addResourceLocations配置资源路径,指向到资源所在得真实路径        
		registry.addResourceHandler("/upload/**").addResourceLocations("file:D:\\");    
	} 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4_Springboot(四) 常用插件
  • 一、Springboot热部署
    • 在pom.xml中配置启用热部署
    • 修改项目配置
  • 二、通用Mapper
    • 添加依赖关系
    • 添加配置
    • 使用
  • 三、PageHelper
    • 添加依赖关系
    • 添加配置
    • 使用
  • 四、文件上传/下载
    • 文件上传
      • 方式一
      • 方式二
    • 文件下载
  • 五、虚拟路径映射
    • 配置虚拟路径
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档