今天来写一下管理员的Service层,创建ManageService接口,该接口继承BaseService接口,然后再创建接口的实例ManageServiceImpl
@Service
public class ManageServiceImpl extends BaseServiceImpl<Manage> {
@Autowired
ManageMapper manageMapper;
@Override
public BaseDao<Manage> getBaseDao() {
return manageMapper;
}
}
注意这里的创建的对象为manageMapper,是因为Dao层的基本类为manageMapper.我们是先写得Dao层,然后来写Service层的,要都是在service里直接调用dao,service里面就new一个dao类对象。我们可以在这里理一下它们的关系:
DAO层
1 、首先我们先在po中写了一个Manage类定义了一些基本属性
2、然后写BaseDao接口,里面有一些增删改查的方法。
3、然后写ManageMapper接口(继承于BaseDao,本质还是Dao接口),因为ManageMapper的实例是通过xml来实现的。所以写了ManageMapper.xml文件,将接口中的所有方法进行了实现。
然后开始写Service层
Service
1、先写BaseService 接口,再写了一个BaseServiceImpl抽象类,以BaseService为接口。(tips:有些同行公司的代码风格是service层=service接口+serviceImpl实现类;而有的同行公司的代码风格是service层=service类;当项目的业务逻辑简单时可选择service层=service类;当项目的业务复杂时,可选择service层=service接口+serviceImpl实现类;)
2、然后写ManageService接口,继承于BaseService。
3、然后写ManageService的实例ManageServiceImpl继承于BaseServiceImpl.
注意两者的区别:
public abstract class BaseServiceImpl<T> implements BaseService<T>{
private BaseDao<T> baseDao;
public abstract BaseDao<T> getBaseDao();
@Service
public class ManageServiceImpl extends BaseServiceImpl<Manage> {
@Autowired
ManageMapper manageMapper;
@Override
public BaseDao<Manage> getBaseDao() {
return manageMapper;
}
}
然后来写Controller
Controller
/**
* 登录验证
*/
@RequestMapping("toLogin")
public String toLogin(Manage manage, HttpServletRequest request){
Manage byEntity = manageService.getByEntity(manage);
if(byEntity==null){
return "redirect:/login/mtuichu";
}
request.getSession().setAttribute(Consts.MANAGE,byEntity);
return "/login/mIndex";
}
/**
* 管理员退出
*/
@RequestMapping("mtuichu")
public String mtuichu(HttpServletRequest request){
request.getSession().setAttribute(Consts.MANAGE,null);
return "/login/mLogin";
}
一开始就是为了进行身份验证,现在终于部署完备,可以开始写了,如果查询到则返回一个Manage对象,反之返回null,需要注意到的一点是如果验证错误的时候,我们需要将session进行清空,如果验证成功,需要将session中进行写入。我们定义了一个全局变量MANAGE,成功则将manage写入MANAGE。
现在失败则返回mIogin.jsp.
成功则进入页面mIndex.jsp.
哈哈哈哈,这一阶段完了,明天开始吧!