您的位置:首页 > 数据库 > Redis

intellij配置maven+SSM+redis(三)

2017-08-15 20:37 387 查看
下面展示各个java类的编写实例:

1、controller包下的user包中的UserController,简单实现登录注册功能。

@Controller
public class UserController {

@Value("#{userManager}")
private IUserService userService;

@RequestMapping("verify_nick_name.do")
public voidverify_nick_name(HttpServletRequest request, HttpServletResponse response)throws IOException {
String username = (String)request.getParameter("nickname");
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
if(userService.check_username(username) == true)
response.getWriter().write("ok");
else
response.getWriter().write("error");
}

@RequestMapping("user_login.do")
public ModelAndView user_login(User_user, HttpServletRequest request) throws IOException {
ModelAndView mav = newModelAndView();
User user = userService.user_login(_user);
if(user != null){
HttpSession session =request.getSession();
session.setAttribute("user", user);
session.setAttribute("userphoto", user.getUserphoto());
mav.setViewName("index");
}else{
mav.setViewName("login");
}
return mav;
}

@RequestMapping("log_out.do")
public ModelAndViewlog_out(HttpServletRequest request){
request.getSession().setAttribute("user", null);
ModelAndView mav = newModelAndView("index");
return mav;
}

//用户注册
@RequestMapping("user_register.do")
public ModelAndViewuser_register(User user, HttpServletRequest request) throws IOException {
ModelAndView mav = newModelAndView("register");
if(userService.user_register(user) == true){
mav.setViewName("login");
}else{
mav.addObject("reg_info", "注册失败");
}
return mav;
}
}


首先需要在类上进行注解标注@Controller,表示这个类为spring中的Controller,@RequestMapping(”xxx.do”)代表输入localhost:8080/xxx.do则会进入到这个函数,这是由之前配置的springMVC进行servlet分发处理的,所以在这个基础包下的controller都可以被装配识别。设置View的名字则可以进入相应的jsp,涉及到具体的逻辑。可以看到

@Value("#{userManager}")

private IUserService userService;

很明显这是一个Service层接口,包含了具体的实现,比如在数据库中添加一条记录属于具体实现,而在Controller中更应该注重业务逻辑,所以需要分层。@Value的含义是实现了这个service接口的类名称,在service中有一个impl包,实现service,需要给实现类起名字,这样的话就可以装配进入使用了。                                                                                                     

 

下面看一下service层的类编写:

IUserServic
4000
e.java
public interface IUserService {
public boolean user_login(User user);
public boolean user_register(Useruser);
}


提供Service接口,面向接口编程,屏蔽实现细节,在Controller中只需关注逻辑即可,代码中不包含与数据库的交互操作。

 

UserService.java
@Service("userManager")
@Transactional
public class UserService implements IUserService{

@Autowired
private IUserMapper userMapper;
public boolean user_login(User user){

User u1 =userMapper.getUserByName("2");
return false;
}

public boolean user_register(Useruser) {
return false;
}
}


@Service("userManager")的作用是标记此实现类名称为userManager,在Controller里面可以通过@Value引用这个实现类,可以看到在Service中注入一个mapper,所以可以看到是service与数据库进行交互而非controller,可以将逻辑和具体实现分隔开,可以搭建最基本的框架。

 

至此,框架搭建完毕并且也提供了一个小例子,见微知著,可以明白基本流程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: