Mybatis之typeAlias配置的3種方式小結
Mybatis typeAlias配置
1.定義別名
<typeAliases> <typeAlias alias="User" type="cn.lxc.vo.User" /> </typeAliases>
2.掃描包方式
<typeAliases> <package name="cn.lxc.vo" /> </typeAliases>
3.註解方式
package cn.lxc.vo; import org.apache.ibatis.type.Alias; @Alias("User") public class User { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
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(); }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 基於SpringBoot加載Mybatis的TypeAlias問題
- Mybatis配置之typeAlias標簽的用法
- MyBatis中基於別名typeAliases的設置
- MyBatis 如何配置多個別名 typeAliasesPackage
- SpringBoot整合Mybatis自定義攔截器不起作用的處理方案