【新手須知】Spring Boot 2.0.0 + MyBatis + Shiro + Swagger 開發專案踩坑記錄
阿新 • • 發佈:2019-01-25
寫在前面
Swagger 2.8.0
Spring Boot 2.0.0.RELEASE
Shiro 1.4.0
Mybatis 1.3.1
填坑
踩坑一:
MyBatis xml檔案中引數名選擇
若UserMapper.java寫法為
User findByUserId(int userId);
則在UserMapper.xml裡引數名只能為arg0、arg1…
<select id="findByUserId" resultType="com.pojo.User">
SELECT * FROM user WHERE id=#{arg0}
</select >
想要改成
<select id="findByUserId" resultType="com.pojo.User">
SELECT * FROM user WHERE id=#{userId}
</select>
則UserMapper.java需要修改為
User findByUserId(@Param("userId") int userId);
踩坑二:
整合Shiro框架後,重定向導致前端頁面佈局錯亂
//放行靜態資源
filterChainDefinitionMap.put("/css/**", "anon" );
filterChainDefinitionMap.put("/js/**", "anon");
filterChainDefinitionMap.put("/layui/**", "anon");
filterChainDefinitionMap.put("/pm/login", "anon");
把前端所有靜態資源都免去認證
踩坑三:
整合Shiro + Swagger,Swagger頁面無法檢視介面
解決辦法與上面類似
/**
* @Mark 線上介面文件路徑
* @URL http://localhost:8080/swagger-ui.html
*/
filterChainDefinitionMap.put("/swagger-ui.html" ,"anon");
filterChainDefinitionMap.put("/static/**", "anon");
filterChainDefinitionMap.put("/swagger/**","anon");
filterChainDefinitionMap.put("/webjars/**", "anon");
filterChainDefinitionMap.put("/swagger-resources/**","anon");
filterChainDefinitionMap.put("/v2/**","anon");
踩坑四:
分模組,啟動後報錯:缺失檔案
Application主程式新增自動掃包程式碼
@ComponentScan(basePackages = {"com.*"})
最後說一個題外話:
就是IEDA在debugger的時候執行特別慢,那有可能是把斷點打在方法上了,改成打在方法內部就好了。