怎么弄公众号,网站代码优化的内容有哪些,西安三桥网站建设,搜索引擎优化案例SpringBoot Service层的作用 a. 封装业务逻辑#xff1a;Service层负责封装应用程序的业务逻辑。Service层是控制器#xff08;Controller#xff09;和数据访问对象#xff08;DAO#xff09;之间的中间层#xff0c;负责处理业务规则和业务流程。通过将业务逻辑封装在S…SpringBoot Service层的作用 a. 封装业务逻辑Service层负责封装应用程序的业务逻辑。Service层是控制器Controller和数据访问对象DAO之间的中间层负责处理业务规则和业务流程。通过将业务逻辑封装在Service层中可以保持控制器的简洁性提高代码的可维护性和可复用性。 b. 事务管理Service层涉及到与数据库的交互和数据的修改。通过在Service层的方法上使用Transactional注解可以实现对数据库操作的事务管理。这样在多个数据库操作中如果其中一个操作失败整个事务可以回滚确保数据的一致性。 c. 协调多个DAO操作在业务逻辑中需要对多个实体进行操作涉及到多个DAO的调用。Service层可以协调这些DAO操作确保它们按照正确的顺序和方式执行。优点保持DAO的单一职责提高代码的可读性和可维护性。 d. 数据转换和验证Service层负责对输入数据进行验证和转换。验证输入数据的有效性、完整性和一致性以及进行数据格式转换和数据清洗等操作。确保数据的质量和正确性避免在后续的处理过程中出现问题。 e. 提供业务接口Service层可以定义一组接口用于提供对业务逻辑的访问。这些接口可以被其他组件如控制器、其他服务等调用实现对业务逻辑的封装和复用。优点提高代码的可测试性和可扩展性。SpringBoot Service层搭建过程 a. 创建Service接口创建一个名为UserService的接口定义一些用户相关的方法。
public interface UserService {User getUserById(Long id);ListUser getAllUsers();void saveUser(User user);void updateUser(User user);void deleteUser(Long id);
}b. 创建Service实现类创建UserService接口的实现类UserServiceImpl并添加Service注解进行标识。
Service
public class UserServiceImpl implements UserService {Autowiredprivate UserRepository userRepository;Overridepublic User getUserById(Long id) {return userRepository.findById(id).orElse(null);}Overridepublic ListUser getAllUsers() {return userRepository.findAll();}Overridepublic void saveUser(User user) {userRepository.save(user);}Overridepublic void updateUser(User user) {userRepository.save(user);}Overridepublic void deleteUser(Long id) {userRepository.deleteById(id);}
}c. 创建Repository接口在DAO层中创建一个名为UserRepository的接口继承自Spring Data JPA的CrudRepository接口。
public interface UserRepository extends CrudRepositoryUser, Long {// 可以根据需要添加自定义的查询方法
}d. 使用Service层在Controller层中使用UserService通过依赖注入的方式将其注入到Control
RestController
RequestMapping(/users)
public class UserController {Autowiredprivate UserService userService;GetMapping(/{id})public User getUserById(PathVariable Long id) {return userService.getUserById(id);}GetMapping(/)public ListUser getAllUsers() {return userService.getAllUsers();}PostMapping(/)public void saveUser(RequestBody User user) {userService.saveUser(user);}PutMapping(/)public void updateUser(RequestBody User user) {userService.updateUser(user);}DeleteMapping(/{id})public void deleteUser(PathVariable Long id) {userService.deleteUser(id);}
}互联网大厂测开经历目前担任测试开发负责人每天分享互联网面经如果你有测试相关的问题欢迎咨询海鲜市场【简历优化】、【就业指导】、【模拟/辅导面试】已辅导20位以上同学拿到心仪offer