接着编写service层的代码。
1、service接口及其实现类
新建service包用于放service接口,还有,新建service.impl包放接口的实现类。如下图,BookService和其实现类BookServiceImpl。
![66a612eb9e7294e6edf567cdb06cbd44.png](https://i-blog.csdnimg.cn/blog_migrate/5dc5f430f45662ea342dd70d4fc4fea5.jpeg)
因为没有什么业务逻辑,所以接口BookService就和BookDao里面方法一样。
public interface BookService { public Book findById(Integer id);}
BookServiceImpl代码:
@Service("bookService")public class BookServiceImpl implements BookService { @Autowired private BookDao bookDao; @Override public Book findById(Integer id) { return bookDao.findById(id); }}
BookServiceImpl实现BookService,实现里面的方法。还有一个常用的原则,如果是自己写的类,尽量使用注解,如果是框架的类,尽量使用配置文件。所以BookServiceImpl使用注解@Service。
service里面肯定要用到dao,我们使用@Autowired自动注入一下。service层没有什么业务逻辑,所以直接调用dao的方法返回结果。
2、service层配置文件
代码写好之后,就到配置文件,在applicationContext.xml中编写service层的相关配置如下:
3、单元测试
之前已经在BookTest测试类中测试了dao的代码,这次换成service的类测试。
@Testpublic void findById(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); // BookDao bean = ac.getBean(BookDao.class); //Book book = bean.findById(1); BookService bookService = ac.getBean(BookService.class); Book book = bookService.findById(1); System.out.println(book.getName());}
自己运行代码看是否正确有效即可,到此service层代码编写完成。