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

2017-12-04  本文已影响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);

上一篇下一篇

猜你喜欢

热点阅读