用户注册功能(包含图片上传功能)
1、编写controller控制器
package org.chenhui.study.springbootstudy.controller;
import java.util.Date;
import org.chenhui.study.springbootstudy.entity.User;
import org.chenhui.study.springbootstudy.entity.result.Register;
import org.chenhui.study.springbootstudy.service.RegisterServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
* 用户注册
*
* @author chenhui
* @time 2018年12月13日
* @e-mail personalmessage@foxmail.com
* @company nikey
*/
@RestController
public class RegisterController {
@Autowired
private RegisterServer registerServer;
@PostMapping("/user/register")
public Register register(@RequestParam("file") MultipartFile file,
@RequestParam("name") String name,
@RequestParam("pwd") String pwd,
@RequestParam("email") String email,
@RequestParam("birthday") Date birthday,
@RequestParam("gender") char gender) {
User user = new User();
user.setName(name);
user.setPwd(pwd);
user.setEmial(email);
user.setBirthday(birthday);
user.setGender(gender);
boolean b_register = registerServer.register(user,file);
if(b_register){
return new Register(0, "注册成功");
}else{
return new Register(1, "注册失败");
}
}
}
2、编写业务代码
package org.chenhui.study.springbootstudy.service;
import java.io.File;
import java.io.IOException;
import org.chenhui.study.springbootstudy.dao.user.UserMapper;
import org.chenhui.study.springbootstudy.entity.User;
import org.chenhui.study.springbootstudy.util.FileNameUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
/**
* 用户注册业务层
*
* @author chenhui
* @time 2018年12月13日
* @e-mail personalmessage@foxmail.com
* @company nikey
*/
@Service
public class RegisterServer {
private static final Logger logger = LoggerFactory.getLogger(RegisterServer.class);
@Autowired
private UserMapper userMapper;
@Value("${file.upload.path}")
private String uploadPath;
@Value("${file.access.url}")
private String accessUrl;
/**
* 用户注册实现
*
* @auth chenhui
* @param user
* @param file
* @return
*/
public boolean register(User user, MultipartFile file) {
boolean b_register = true;
String fileName = FileNameUtils.getFileName(file.getOriginalFilename());
user.setHeadImgPath(accessUrl + fileName);
File dest = new File(uploadPath + fileName);
if(!dest.exists()){
try {
dest.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return b_register = false;
}
}
try {
file.transferTo(dest);
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
return b_register = false;
}
try{
userMapper.add(user);
}catch(Exception e){
logger.error("注册失败", e);
return b_register = false;
}
return b_register;
}
}
3、编写数据访问层
package org.chenhui.study.springbootstudy.dao.user;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.chenhui.study.springbootstudy.entity.User;
/**
* 用户数据访问接口
*
* @author chenhui
* @time 2018年12月13日
* @e-mail personalmessage@foxmail.com
* @company nikey
*/
@Mapper
public interface UserMapper {
@Select("SELECT * FROM `user` WHERE `NAME` = #{username} AND PWD = #{password}")
User login(@Param("username")String username, @Param("password")String password);
@Insert("INSERT INTO `user` (NAME,PWD,EMIAL,HEADIMGPATH,BIRTHDAY,GENDER) VALUES "
+ "(#{user.name},#{user.pwd},#{user.emial},#{user.headImgPath},#{user.birthday},#{user.gender})")
void add(@Param("user")User user);
}
4、配置文件
server:
port: 52117
servlet:
contextPath: /lsyq
session:
timeout: 18000
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/study_data?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: devolpment
password: devolpment
redis:
host: 127.0.0.1 # 默认 localhost
port: 6379 # 默认6379
password: 123456
database: 0 # 默认为0 可以不用配置
file:
upload:
path: D:\images\
access:
url: http://192.168.6.202:52017/RecordFile/