Spring Boot 应用通常遵循经典的"三层架构"。分层的核心目的是单一职责原则****(Single Responsibility Principle),即每一层只专注于处理特定类型的任务。
controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。
service:业务逻辑层,处理具体的业务逻辑。
dao:数据访问层,负责数据访问操作,包括数据的增删改查。
案例:对第一章节的SpringBoot项目进行拆分
Dao层:
java复制代码
public class UserDaoImpl implements UserDao {
@Override
public List<String> findAll() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");
ArrayList<String> lines = IoUtil.readUtf8Lines(in, new ArrayList<>());
return lines;
}
}
Service层:
java复制代码
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
@Override
public List<User> findAll() {
List<String> lines = userDao.findAll();
List<User> userList = lines.stream().map(line -> {
String[] split = line.split(",");
return new User(
Integer.parseInt(split[0]),
split[1],
split[2],
split[3],
Integer.parseInt(split[4]),
LocalDateTime.parse(split[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}).toList();
return userList;
}
}
Controller层:
java复制代码
@RestController //@Controller + @ResponseBody -----> 如果返回的是一个对象/集合 --> 转json --> 响应
public class UserController {
private UserService userService = new UserServiceImpl();
@RequestMapping("/list")
public List<User> list() {
List<User> userList = userService.findAll();
return userList;
}
}