开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情
使用SpringBoot框架的前提下:
用一个用户登录接口来举例,在业务层首先创建业务层接口IUserService,主要目的是解耦合,也就是减少模块之间的依赖,增加程序的独立性。然后来设计业务层的抽象方法:
public inerface IUserService{
void Register();
}
业务层接口的方法如何设计呢?
1)返回值:设计返回值时直接假定方法成功调用时返回的值类型,不需要考虑调用失败,因为可以直接在业务层抛出异常。
2)参数列表:参数的设计要同时考虑到controller层和mapper层,要考虑用户会通过controller层传来什么参数和向数据库的操作需要什么参数。
3)异常处理:在业务层要规划业务中会出现的异常,然后在业务层抛出异常,使用抛出异常的方式来表示操作失败。
package com.cy.store.service.impl;
import com.cy.store.entity.User;
import com.cy.store.mapper.UserMapper;
import com.cy.store.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/** 处理用户数据的业务层实现类 */
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public void reg(User user) {
// TODO
}
}
创建抽象接口完成后就是来实现抽象方法,在实现类前需要添加@Service注解。因为业务层是依赖mapper层实现的,所以还需要导入mapper层对象,使用@Autowired注解来自动注入一个Mapper层对象调用其方法。
实现的步骤大致是分析业务功能、创建要返回的对象、调用持久层方法、抛异常、return数据。
在编写完业务层方法后就可以在测试类里测试一下了,可以单独创建service层的测试类,注意添加@RunWith(SpringRunner.class)和@SpringBootTests注解,并使用@Autowired自动注入所依赖的service层对象,测试方法前要使用@Test注解,测试方法要以public void开头。