这周临时接到一个迁移旧数据的问题,代码只需要执行一次,执行完后为不影响项目的完整性,下一次迭代之时需要把该部分代码删除。因此将所有代码均置于一个叫做temp的子包下(controller,dao,service及service实现)。最后遇到了一下错误:

Description:

Field migrateDao in XXXXXXXXl required a bean of type 'XXXXXXXXX.MigrateRecordDao' that could not be found.

	
Action:

Consider defining a bean of type 'XXXXXXXXXXXXXX.temp.MigrateRecordDao' in your configuration.


        最后才发现,造成这些错误的原因,主要是平时整体上使用SpringBoot过少。工作一年多了,才涉及到六个项目独立开发过一下小项目。解决方案:

1. 在SpringBoot的启动类上加上注解@MapperScan(basePackages = “com.demo.dao”),如果是在完整的项目上加一个临时包,然后在临时包内写dao层泪,由于dao层包不在MapperScan扫描范围之内,自然会出现扫描不到的问题。因此需要注意,dao层类所在的包,必须处于MapperScan的扫描范围内。
2. 另外一个就是需要注意MyBatis的xml文件也需要有扫描路径:mybatis.mapper-locations=classpath:mapper//*.xml**

        将这两点搞好之后,项目就可以正常运行起来了。SpringBoot的核心思想就是约定大于配置,虽然配置上较SSM,SSH简单了许多,但毕竟还是有的,而项目起不来大部分原因还是配置问题,多了解了解配置很有必要。