深入实践Spring Boot 连接 MySql时 碰到的坑

  写在前面的话:

        总觉得自己是易踩雷的人 ,接触一个新技术时总会碰到各种各样的问题,而我又是一个乐观且有耐心的人,往往比一帆风顺的人学到更多的知识。这难道就是天将降大任于斯人也,必先苦其心志,劳其筋苦~大笑


1、坑人的配置文件

    hibernate:
      ddl-auto: update
      naming-strategy: org.hibernate,cfg.ImprovedNamingStrategy

相信大家一眼就能看出来 ,点写成了逗号 ,可是编译器对于.yml 里的配置并没有检查的功能这点要加个注意了除了这种类型的文件还有.xml文件在编译阶段都是不检查是否有语法等错误的,这个是在后来检查注解不生效时发现的。但是整个程序编译运行下来毫无问题,比较好奇这个配置是起什么作用  先留下个问题 我现在也不明白

2、注解不生效,且在controller文件中使用 @Autowire 注解时 会有标红 运行时报下面的错

  1. ***************************  
  2. APPLICATION FAILED TO START  
  3. ***************************  
  4.   
  5. Description:  
  6.   
  7. Field demoService in com.spring.web.DemoApplication required a bean of type 'com.spring.service.DemoService' that could not be found. 

这个最开始一直认为是自己代码中有问题 或者注解的使用方法和普通的SSH项目不同 



了解spring boot的同学可能一眼就看出问题,但是作为小白的我 ,在这个上面折腾了2个小时

解决方法:

扫描二维码关注公众号,回复: 2670230 查看本文章

将DemoApplication.java 的位置调整到com.example下问题就解决了 

SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描! 
“Application类”是指SpringBoot项目入口类。这个类的位置很关键: 
如果Application类所在的包为:com.example.demo,则只会扫描com.example.demo包及其所有子包,如果service或repository所在包不在com.example.demo及其子包下,则不会被扫描! 
即, 把Application类放到repository、service等需要注解的类所在包的上级,com.example
知道这一点非常关键,不知道Spring文档里有没有给出说明,如果不知道还真是无从解决。



猜你喜欢

转载自blog.csdn.net/printsky/article/details/80232475
今日推荐