• @Service注解是放实现类上的而非接口上


    今天用springboot写多模块项目,写完第一个Controller类,注入的Service接口是ok的,然后写第二个Controller类就一直报错。这把我给搞懵逼了,为什么我第一个Controller没错,第二个错了,我代码都一样的啊。

    我看他说没扫描到,就去看了下@Service注解,有啊。然后我再去看包名,也对的啊。多模块下面每个模块的包名都一样的,能够被@SpringBootApplication扫描到啊,彻底蒙圈了。

    看来看去我都没找到哪里错了,好吧,1个半小时过去了,我自己找不到,去百度去问人。这是越来越蒙圈(百度要不是说包名要一样,要不就是说@SpirngBootApplication扫描同级及下层所有子包,我都知道啊,概念清楚,也没错,包名我又再对了一遍。然后再就是手动扫描,自己额外写注解,无论是@ComponentScan和@SpirngBootApplication("xx")我都试了,中间倒是掌握了个小知识——手动用注解扫描的话,记得还要手动把@SpringBootApplication注解所在的类的所在包一起扫进去)。

    3个小时了,我彻底放弃了。准备重来一次,重新上git拉了个模板,把自己的代码文件一个一个拉过去,(以前出现过一次两个项目代码完全一样的,就是一个对了,一个出问题,现在怀疑是当时导入的maven依赖有冲突,一个运气好莫名其妙对了,一个运气差)拉着拉着我就 发现刚才好像有个文件没有@Service啊,额。再一看,好吧,还真没有,把@Service写到接口上去了,Impl实现类上没有@Service,额。无语,只能恨自己眼瞎,看包名看了一遍又一遍就是没看@Serivce到底放在什么位置。

    总结一下:老老实实跟着IDEA的报错去找,这要是老老实实从service类开始开,细心一点,三个小时就不会浪费了。(也是自己技能没掌握扎实,我估计是当时犯浑,没搞清@Service放接口和放实现类上的差距)

    过了1个多星期了,这几天复习了spring,spring可以管理部分工具类,但是不可以管理接口,也就是@Controller,@Component,@Repository,@Service不能放接口上。

  • 相关阅读:
    推送
    XPath
    XML
    在xcode 6.4 环境下写的demo 在xode7 环境下 网络请求有问题
    SVN 搭建
    翻译
    iOS面试题积累
    安卓扁平化之路专题(三)Android 5.0新特性
    Android @SuppressLint @TargetApi 总结
    Android_support_v4,Android_support_v7,Android_support_v13区别
  • 原文地址:https://www.cnblogs.com/woyujiezhen/p/12437475.html
Copyright © 2020-2023  润新知