这次总结从后端包结构里面的几个层的基础出发,在讲数据库的时候就已经将Mapper接口及其同名的.xml文件的注意总结了,剩下就是控制层、业务层接口及其实现类,这里面就跟spring与springmvc的运用有关,具体运行逻辑我这种水平也难讲清,简便的总结一下表面的东西
Service
在Service层中,要定义一个Service接口以及它所对应的实现方法类ServiceImpl(impl)
接口
public interface XXXService {
void xxx(XXX xxx);
//接口名一般都是自定义的功能模块+Service
//方法名根据实际需求自己填写,最好意义鲜明,适合理解
//接收的数据类型及其数据名根据实际需求自定义,并放置在单独实体类包内
}
实现类
@Service
public class XXXServiceImpl implements XXXService {
@Autowired
private XXXMapper XXXMapper;
@Override
public void xxx(XXX xxx) {
//此处写方法内容
}
}
//对实现类需要记得注释Service以及调用Dao层Mapper方法的自动注入注释Autowired
Controller
在控制层,是与前端页面进行数据传递和处理工作的重要位置
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/register.do")
@ResponseBody
public String register(User user ,String code ,HttpServletRequest request){
String vcode = (String)request.getSession().getAttribute("vcode");
ObjectMapper mapper = new ObjectMapper();
String str = "";
Map<String , Object> map = new HashMap<>();
//判断验证码是否正确
try{
if(!vcode.equalsIgnoreCase(code)){
map.put("status", "error");
map.put("msg", "验证码错误");
//如果不正确 发送false
str = mapper.writeValueAsString(map);
return str;
}
//检查用户名是否存在 不存在就是false 存在就是为true
boolean flag = userService.checkUsernameExist(user.getUsername());
if(flag){
// request.getSession().setAttribute("msg", "账号已经存在");
map.put("status", "error");
map.put("msg", "账号已经存在");
str = mapper.writeValueAsString(map);
return str;
}
//信息都正确了之后 添加数据
userService.saveUser(user);
//添加成功 修改状态为success
map.put("status", "success");
str = mapper.writeValueAsString(map);
}catch (Exception e){
e.printStackTrace();
}
return str;
}
}
用一个例子来解释,注释是必须符合规范地写在指定位置,注释内的值要符合你在springmvc的设置,@RequestMapping是用于前端绑定请求地址,String是固定格式,@ResponseBody注释下,返回值要经过转化成json格式才能传回,如果使用的是json格式的情况下,传递信息使用的java类可以自己定义,能有效达到目的就行
有错误欢迎指正,学习路还好长啊