美文网首页
后台设计使用springboot开发初涉及使用遇到的问题

后台设计使用springboot开发初涉及使用遇到的问题

作者: 李小二先生 | 来源:发表于2017-12-04 09:27 被阅读0次

    1: 出现Controller扫描不到的问题解决

    答: 将application放到主目录,也就是说将application放到controller的父级目录,将application上加注解

    @Configuration

    @ComponentScan

    @EnableAutoConfiguration

    再在相应的controller上加注解

    @Controller

    @EnableAutoConfiguration

    2: 切记 默认的访问格式是表单格式

    3: 关于插入输入数据无反应问题

    答: 应在相应的@service下 添加数据更新操作

    public intinsertSelective(VotcDeviceUser record) {

    //TODO Auto-generated method stub

    deviceUserMapper.insertSelective(record);

    return0;

    }

    public intinsert(VotcDeviceUser record) {

    //TODO Auto-generated method stub

    deviceUserMapper.insert(record);

    return0;

    }

    4: 关于项目中获取配置文件application.properties中配置信息需要注解

    答:

    @Value("${serverPICPath}")

    privateStringserverPICPath;

    5: 关于项目中上传数据 并指定相应的位置如下:

    /*

    *  文件上传具体实现方法(单文件上传(pic))

    *  李腾

    *  2017/11/14

    * */

    @ResponseBody

    @RequestMapping(value ="/votcupload", method = RequestMethod.POST)

    publicOBeanBase upload(HttpServletRequest request) {

    // 返回信息

    OBeanBase carrier =newOBeanBase();

    // 先获取devicetoken

    String devicetoken = request.getParameter("devicetoken");

    // 获取当前用户

    VotcDeviceUser deviceUser =deviceUserService.selectByPrimaryKey(devicetoken);

    // 获取当前用户的userid

    String userid = deviceUser.getUserid();

    System.out.println(userid);

    //转换request

    MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;

    // 获得文件

    MultipartFile file = multipartHttpServletRequest.getFile("file");

    if(!file.isEmpty()) {

    // 获取文件名

    String fileName = file.getOriginalFilename();

    System.out.println("文件名:"+ fileName);

    // 获取文件名的后缀

    String suffixName = fileName.substring(fileName.lastIndexOf("."));

    System.out.println("文件名的后缀:"+ suffixName);

    // 创建保存目录

    String picFilePath =UPLOADPICPath;

    String tempStr ="\\";

    picFilePath = picFilePath +"upload"+ tempStr + userid;

    picFilePath = picFilePath + tempStr + fileName.substring(0,4);

    picFilePath = picFilePath + tempStr + fileName.substring(4,6);

    picFilePath = picFilePath + tempStr + fileName.substring(6,8);

    picFilePath = picFilePath + tempStr + fileName;

    System.out.println(picFilePath);

    //判断是否为图片格式

    if(suffixName.equals(".png") || suffixName.equals(".jpg") || suffixName.equals(".jpeg")) {

    File tempFile =newFile(picFilePath);

    // 检测是否存在目录

    if(!tempFile.getParentFile().exists()) {

    tempFile.getParentFile().mkdirs();

    }

    try{

    file.transferTo(tempFile);

    System.out.println("上传成功");

    carrier.setInfo("0","上传成功");

    picFilePath = picFilePath.substring(2);

    picFilePath = picFilePath.replace("\\","/");

    carrier.setContents(picFilePath);

    }catch(IllegalStateException e) {

    e.printStackTrace();

    System.out.println("上传失败");

    carrier.setInfo("10001","上传失败");

    //                    carrier.setContents(filePath + fileName);

    }catch(IOException e) {

    e.printStackTrace();

    System.out.println("上传失败");

    carrier.setInfo("10001","上传失败");

    }

    }

    }

    returncarrier;

    }

    6 : 关于数据的文件的前端读取问题,采用数据流方式返回至前端

    /**

    *@Author:Mr.Lee

    *@Date:Created in 18:19 2017/11/16

    *@Brief:使用 ?**=  拼接方式进行解决 后边内容的可变性

    */

    @ResponseBody

    @RequestMapping(value ="/votcupload", method = RequestMethod.GET)

    public voidshowfile(HttpServletRequest request, HttpServletResponse response)throwsIOException {

    // 获取= 号后边的 url

    String urlStr = request.getParameter("url");

    // 将url中的的/ 改为本机的地址\\

    urlStr = urlStr.replace("/","\\");

    // 取得相应的文件地址

    String filepath =UPLOADMAINPath+ urlStr;

    // 输出文件地址

    System.out.println(filepath);

    // 定义数据流

    FileInputStream fileInputStream =newFileInputStream(filepath);

    // 得到文件大小

    inti = fileInputStream.available();

    bytedata[] =new byte[i];

    // 读出相应的数据

    fileInputStream.read(data);

    // 得到后想客户端输出显影的二进制数据的对象

    OutputStream outputStream = response.getOutputStream();

    // 输出数据

    outputStream.write(data);

    // 清空缓冲区

    outputStream.flush();

    // 关闭数据输出

    outputStream.close();

    // 关闭

    fileInputStream.close();

    }

    7 : 关于前端请求后端的文件时

    答:  采用 ?= 拼接方式解决

    8:  关于在controlller中未找到service问题解决

    答: 是因为在impl中没有实现service

    9: 关于返回数据库返回list

    答: Mapper.xml中

    select

    from votc_soundlist

    where userid = #{userid,jdbcType=VARCHAR}

    dao中

    List selectByUserId(String userid);

    Service 中实现

    List selectByUserId(String userid);

    ServiceImpl实现中

    publicList selectByUserId(String userid){

    returnvotcSoundListMapper.selectByUserId(userid);

    }

    Controller中

    List list =newArrayList<>();

    list =votcSoundListService.selectByUserId(userid);

    相关文章

      网友评论

          本文标题:后台设计使用springboot开发初涉及使用遇到的问题

          本文链接:https://www.haomeiwen.com/subject/fzetixtx.html