【二】在springboot工程中添加service层

在【一】往springboot-helloworld工程中通过继承mybatis-plus中的BaseMapper添加了mapper层,下面继续往工程中通过继承mybatis-plus中的Iservice接口添加Service层,并且使用mybatis-plus中ServiceImpl实现的方法。

1、目录结构如下

2、开发service

在com.lingyi.mybatis.service包中添加PersonService.java接口,该接口继承mybatis-plus的Iservice接口。MP也提供了一个通用的Service接口,里面也提供了很多方法。

package com.lingyi.mybatis.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lingyi.mybatis.bean.Person;

/**
 * 1.在mybatis中,是在PersonService声明方法,然后在其实现类实现
 * 2.而在MyBatis-Plus中,我们可以通过继承父接口:IService,从而使用里面的很多方法
 * 3.如果它提供的方法不能满足业务需求,再自定义开发新的方法
 */
public interface PersonService extends IService {
}

注意:如果在业务Service接口声明了自定义方法,通常会创建一个实现类实现接口方法,问题是:由于业务Service接口继承了IService接口,那么业务Service的实现类要同时实现两个接口的方法才行,非常麻烦。

解决方案是:业务实现类通过继承ServiceImpl类解决问题。ServiceImpl类是MyBatis-Plus提供的一个类,它已经实现了IService的方法。这样业务实现类就只需要实现业务Service自定义的方法。

【二】在springboot工程中添加service层_第1张图片

3、业务实现类PersonServiceImpl:

在com.lingyi.mybatis.service.impl包下添加PersonService接口的实现类PersonServiceImpl.java

package com.lingyi.mybatis.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lingyi.mybatis.bean.Person;
import com.lingyi.mybatis.mapper.PersonMapper;
import com.lingyi.mybatis.service.PersonService;
import org.springframework.stereotype.Service;

/**
 * 需要添加Service注解
 */
@Service
public class PersonServiceImpl extends ServiceImpl implements PersonService {
        //通过继承ServiceImpl,这个实现类中就只用实现业务Service自定义的方法
}

4、测试

在test目录下,添加测试方法,验证service层是否可用。测试类为TestPersonService.java

package com.lingyi.mybatis;

import com.lingyi.mybatis.service.PersonService;
import com.lingyi.mybatis.service.impl.PersonServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * 测试Service层的方法
 */
@SpringBootTest
public class TestPersonService {
    @Autowired
    private PersonService personService;
    @Test
    public void getAll(){
        long count = personService.count(); //使用mybatis-plus中ServiceImpl中提供的方法。
        System.out.println(count);
    }

}

5、运行该测试类,结果如下

你可能感兴趣的:(spring,boot,java,后端)