Java游戏服务器开发之十四--在handler和dao层中添加service层
现在我们的写法是将dao注入到handler中,如果遇到要写业务逻辑的话,其实不是太方便,所以我们在handler和dao层中添加service层
这样dao的所有接口都只暴露给service,整个的数据流向就是handler--service--dao
主要变化是:
添加 UserService/UserServiceImpl 修改TestFirstHandler
在UserService中添加几个方法
Long count();
List<User> listAll();
void insert(User user);
void doTest(String message, Session session);
UserServiceImpl作为UserService的实现类,count/listAll/insert分别对应dao中的这几个方法
doTest方法就是从TestFirstHandler中移植过来的呢
TestFirstHandler这个中的测试方法,就可以缩写成userService.doTest(message,session);
看下具体的代码
UserService
上面的代码在码云上 https://gitee.com/lizhaoandroid/JgServer
可以加qq群一起探讨Java游戏服务器开发的相关知识 676231524
现在我们的写法是将dao注入到handler中,如果遇到要写业务逻辑的话,其实不是太方便,所以我们在handler和dao层中添加service层
这样dao的所有接口都只暴露给service,整个的数据流向就是handler--service--dao
主要变化是:
添加 UserService/UserServiceImpl 修改TestFirstHandler
在UserService中添加几个方法
Long count();
List<User> listAll();
void insert(User user);
void doTest(String message, Session session);
UserServiceImpl作为UserService的实现类,count/listAll/insert分别对应dao中的这几个方法
doTest方法就是从TestFirstHandler中移植过来的呢
TestFirstHandler这个中的测试方法,就可以缩写成userService.doTest(message,session);
看下具体的代码
UserService
/*
* Copyright (C), 2015-2018
* FileName: UserService
* Author: zhao
* Date: 2018/7/5 9:52
* Description: 用户管理的业务层
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
package com.lizhaoblog.server.biz.services;
import com.lizhaoblog.base.session.Session;
import com.lizhaoblog.server.biz.entity.User;
import java.util.List;
/**
* 〈一句话功能简述〉<br>
* 〈用户管理的业务层〉
*
* @author zhao
* @date 2018/7/5 9:52
* @since 1.0.0
*/
public interface UserService {
Long count();
List<User> listAll();
void insert(User user);
void doTest(String message, Session session);
}
UserServiceImpl
/*
* Copyright (C), 2015-2018
* FileName: UserServiceImpl
* Author: zhao
* Date: 2018/7/5 9:53
* Description: UserService的实现类
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
package com.lizhaoblog.server.biz.services.impl;
import com.lizhaoblog.base.session.Session;
import com.lizhaoblog.base.session.SessionManager;
import com.lizhaoblog.server.biz.dao.mysql.UserDao;
import com.lizhaoblog.server.biz.entity.User;
import com.lizhaoblog.server.biz.services.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 〈一句话功能简述〉<br>
* 〈UserService的实现类〉
*
* @author zhao
* @date 2018/7/5 9:53
* @since 1.0.0
*/
@Service
public class UserServiceImpl implements UserService {
private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
@Autowired
private UserDao userDao;
@Override
public Long count() {
return userDao.count();
}
@Override
public List<User> listAll() {
return userDao.listAll();
}
@Override
public void insert(User user) {
userDao.insert(user);
}
@Override
public void doTest(String message, Session session) {
logger.info("服务器收到的数据内容:data=" + message);
String result = "小李,我是服务器,我收到你的信息了。";
SessionManager.getInstance().sendMessage(session, result);
List<User> all = listAll();
logger.info(all.toString());
User user = new User();
user.setName("a");
user.setAccount("aa");
user.setPassword("aaa");
insert(user);
all = listAll();
logger.info(all.toString());
}
}
TestFirstHandler
/*
* Copyright (C), 2015-2018
* FileName: TestFirstHandler
* Author: zhao
* Date: 2018/6/25 16:24
* Description: 用于测试的第一个handler
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
package com.lizhaoblog.server.biz.handler;
import com.lizhaoblog.base.concurrent.handler.AbstractHandler;
import com.lizhaoblog.base.session.Session;
import com.lizhaoblog.base.session.SessionManager;
import com.lizhaoblog.server.biz.dao.mysql.UserDao;
import com.lizhaoblog.server.biz.entity.User;
import com.lizhaoblog.server.biz.services.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 〈一句话功能简述〉<br>
* 〈用于测试的第一个handler〉
*
* @author zhao
* @date 2018/6/25 16:24
* @since 1.0.0
*/
@Component
public class TestFirstHandler extends AbstractHandler<String, Session> {
@Autowired
private UserService userService;
@Override
public void doAction() {
userService.doTest(message,param);
}
}
上面的代码在码云上 https://gitee.com/lizhaoandroid/JgServer
可以加qq群一起探讨Java游戏服务器开发的相关知识 676231524