javascript
简单介绍基于Spring Boot的项目骨架使用
前言
從大學開始接觸 java 后臺開發,到后來了解了更多的編程語言的開發。發現 java 的開發可以說是相較而言很復雜的了,光是 Spring MVC 的配置要是沒有經歷系統的學習,可能就能勸退一波了。所以衍生而來的是如 mybatis-generator 這類代碼生成插件,即根據數據庫表結構來生成相應的 po 層、dao 層、以及 dao 層的映射。相較而言是比較簡便的使用了,但是每次還得寫 service 層和 controller 層的一些基礎代碼。但是最近在公眾號上發現一個更好用的 Spring Boot 的項目骨架。畢竟大佬給搭的骨架和我這種菜雞搭的無論從代碼結構或者簡便性上來說都是沒法比的哈哈。項目介紹地址為: https://mp.weixin.qq.com/s/Cb4dSVlhNqsHQRp_PECF1w 。github 地址為: https://github.com/lihengming/spring-boot-api-project-seed 。
通過使用大佬的項目骨架,一方面是代碼邏輯、架構更優美,使用代碼生成器生成代碼后會創建 model、dao、service、web 等包。所以我們需要做的就是設計好表結構后,生成代碼,然后編寫控制器中的邏輯處理的代碼即可。
使用步驟
第一步:新建一個 Spring 項目
第二步:到 github 上把項目下載下來
第三步:將需要的部分整合到我們的項目中
因為我想整合到原有的項目中,所以我把這個開源項目的中我需要的東西 copy 到我的項目中。當然也可以直接在這個開源項目上改,將包名啥的改成自己的即可。
第四步:修改部分內容
- pom.xml
去除導入 MySQL JDBC 驅動中的這一行
<scope>runtime</scope>- MybatisConfigurer、WebMvcConfigurer
修改原有導入類的包名為當前正確的包名。
- ProjectConstant
修改 BASE_PACKAGE
- application-dev.properties
數據源配置,請修改為項目的實際配置
修改 com.mysql.jdbc.Driver為 com.mysql.cj.jdbc.Driver
- CodeGenerator
修改數據庫配置、mysql 驅動、要生成代碼的表名
第五步:生成代碼
運行 CodeGenerator
第六步:愉快的寫代碼
注意這邊 mybatis 的 dao 層用的接口是 core 中的。
使用過程中找下提供的接口即可。
統一API響應結果封裝
對響應結果進行了封裝,無論是成功或者其他狀態,都會使接口更規范。
攔截器使用
- 接口簽名認證攔截器(項目給出)
- 新增攔截器只需調用registry.addInterceptor,然后new一個HandlerInterceptorAdapter,并根據需求實現其中的preHandle方法(預處理)、postHandle方法(返回處理),afterCompletion方法(后處理)。
假設做一個登陸界面的攔截器。
registry.addInterceptor(new HandlerInterceptorAdapter() {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//驗證請求的地址是否是登錄地址 如果是繼續往下執行String uri=request.getRequestURI();uri = uri.substring(uri.lastIndexOf("/")+1);if(uri.equals("login")){return true;}//驗證session中是否有用戶存在 如果有 繼續執行if(request.getSession().getAttribute("user")!=null){return true;}//執行跳轉到登錄頁面response.sendRedirect(request.getContextPath()+"/main/login");return false;} });效果如下:
靜態資源映射
項目骨架中沒有加這個,如果是要開發web項目的話需要加一個靜態資源的映射,并且修改攔截器的使用,避免攔截了靜態資源
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) {//將訪問/static/** 的路由映射到classpath:/static/ 目錄下registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/"); }攔截器判斷是否為訪問靜態資源
//判斷請求是否為靜態資源 int result = uri.indexOf("static/"); if(result != -1){return true; }總結
以上是生活随笔為你收集整理的简单介绍基于Spring Boot的项目骨架使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 攻防世界-web-unfinish-从0
- 下一篇: Spring Boot项目无法找到get