問題一
在Mapper層,它是需要加@Mapper註解的,但是網上又有人加@respository,兩個註解混起來了,其實是任選其一都可以的。一般都是使用@Mapper。但是如果在Mapper層中加了註解,在配置主類SpringBootMybatisApplication裏面就不需要@MapperScan(“com.example.demo.mapper”)掃描註解,在配置類里加掃描註解的意思是將這個包下所有的都註解成Mapper。
問題二
用STS創建的SpringBoot項目,其中配置文件默認的是application.properties,一般在這個文件裏面配置數據源。但是這個文件想要起作用,則必須在配置主類中加入@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})自動注入,否則該配置文件中的配置無效。會報出Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.錯誤
但是此時如果加了這個註解,由於Mybatis的依賴中的jar包,
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</ version>
</dependency>
問題三
mybatis-spring-1.3.2中取消了自動注入SqlSessionFactory 和 SqlSessionTemplate,所以會報出Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required錯誤。
那得想解決辦法啊,於是網上搜解決辦法,參考此文, 創建了一個基類,然後讓自己的dao去繼承。
https://www.cnblogs.com/hawk0035/p/3337283.html?utm_source=tuicool
但是我的Mapper層是使用了註解版Mybatis,是一個接口,不能繼承類。所以這個辦法就不能用了。
既然mybatis-spring-1.3.2中取消了自動注入,那我就換成低版本的mybatis-spring-1.1.1,但是事實還是一樣,沒有任何改變。
那就想辦法不要@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})自動注入,所以必須把application.properties配置文件改爲application.yml。問題終於解決了。