您好,登錄后才能下訂單哦!
這篇文章主要介紹“基于SpringBoot加載Mybatis的TypeAlias問題怎么解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“基于SpringBoot加載Mybatis的TypeAlias問題怎么解決”文章能幫助大家解決問題。
springboot打成jar之后再linux上運行會報找不到 type alias 對應的實體類的問題,這是springboot掃包的問題。
工程上默認使用的是Mybatis的DefaultVFS進行掃描,但是在springboot的環境下,Mybatis的DefaultVFS這個掃包會出現問題,所以只能修改VFS,為了清晰可見
@Bean public SqlSessionFactory sqlSessionFactoryBean() throws Exception { logger.info("load SpringBootVFS"); //DefaultVFS在獲取jar上存在問題,使用springboot只能修改 VFS.addImplClass(SpringBootVFS.class); SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource()); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources1 = resolver.getResources("classpath*:/mybatis/*.xml"); Resource[] resources2 = resolver.getResources("classpath*:/mysql/mapper/*.xml"); Resource[] resources = (Resource[]) ArrayUtils.addAll(resources1,resources2); sqlSessionFactoryBean.setMapperLocations(resources); sqlSessionFactoryBean.setTypeAliasesPackage("com.xxx.xx.entity"); return sqlSessionFactoryBean.getObject(); }
springBoot項目在IDEA上面正常但是打包之后運行 出錯,錯誤大致為mybatis解析Mapper.xml時 typeAlias找不到XX類
<select parameterType="XXClass" resultMap="XXMap">
這種寫法在IDEA里面運行沒問題 打包就有問題
<select parameterType="cn.test.xxx.XXClass" resultMap="XXMap">
代碼中的parameterType必須要用全路徑才行 否則就出錯。
關于“基于SpringBoot加載Mybatis的TypeAlias問題怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。