Service层和Controller层的开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Service层和Controller层的开发相关的知识,希望对你有一定的参考价值。

参考技术A dao层:对应每个表做增删改查

service层:对dao的增删改查整合(一般service只调用自己的dao接口,如果想调用其他层的dao接口,则通过引入该层的service)

web层(controller层):定义路由访问,对service层整合

//配置+接口+实现类

AddressbookService.java

AddressbookServiceImpl.java

spring包扫描问题

  最近做项目时发现一个spring包扫描问题,项目中使用spring、springMVC、mybatis框架,因为整个项目是按模块来分布式开发,最终将各个模块整合在一起,但是整合时发现有些模块的service层和controller层包没有扫描到。

  举个例子:A模块的service层包为 com.project.A.service,B模块的service层的包为com.project.base.B.service;在spring的配置文件里包扫描器的配置为:

<context:component-scan base-package="com.project.*.service" />,但结果发现这么写扫描包并没有扫描到B模块的service层,后来特意查阅了一下*号通配符在包路径中的含义。

   “*”:匹配零个或多个字符串,如“cn/*/config.xml”将匹配“cn/javass/config.xml”,但不匹配匹配“cn/config.xml”和“cn/javass/test/config.xml”;而“cn/config-*.xml”将匹配“cn/config-dao.xml”; 

   “**”:匹配路径中的零个或多个目录,如“cn/**/config.xml”将匹配“cn /config.xml”,也匹配“cn/javass/spring/config.xml”;而“cn/javass/config-**.xml”将匹配“cn/javass/config-dao.xml”,即把“**”当做两个“*”处理。

  所以,一个*号并不能匹配多个目录,上面的问题解决方法为:将包扫描器配置改为<context:component-scan base-package="com.project.**.service" />即可。

以上是关于Service层和Controller层的开发的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 业务逻辑层

Spring Boot中DAO层和Service层等理解

java中dao层和service层的区别是啥

java中dao层和service层的区别是啥?

关于service层和DAO层的几点疑惑

java中dao层和service层的区别是啥?