Spring Boot Web 開發很是簡單,該示例包括包括目前web開發基本都須要用到的內容html
- 序列化(json)輸出 - 過濾器(filters) - 監視器(listener) - 攔截器(interceptor) - 日誌(基於lombok) - properties配置 - 數據庫(mysql)crud - ORM - 單元測試
等等內容前端
java代碼目錄規劃以下:java
com +- easy +- common +- filter | +- CustomFilter.java 自定義過濾器 +- interceptor | +- CustomHandlerInterceptor.java 自定義攔截器 +- listener | +- CustomRequestListener.java 自定義Request監視器 | +- CustomSessionListener.java 自定義Session監視器 +- AppProperties 項目配置解析類 +- model model層 +- repository 數據訪問 | +- UserRepository.java +- User.java +- service 服務層 +- web controller層 | +- HelloController.java 入門示例 | +- ThymeleafController.java 模塊引擎示例 | +- UserController.java 查詢用戶示例 +- WebApplication 啓動器 +- WebConfiguration 配置入口(配置過濾器、攔截器、監視器)等
<!--Java持久化規範--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--thymeleaf模板引擎--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--web依賴,包含(包括Tomcat和spring-webmvc)等--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mysql鏈接驅動--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--lombok依賴--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!--jquery依賴--> <dependency> <groupId>org.webjars.bower</groupId> <artifactId>jquery</artifactId> <version>3.4.1</version> </dependency> <!--bootstrap依賴--> <dependency> <groupId>org.webjars.bower</groupId> <artifactId>bootstrap</artifactId> <version>3.3.7</version> </dependency> <!--單元測試--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
技術 | 名稱 |
---|---|
SpringFramework | 容器 |
Spring Boot | 框架容器 |
spring-boot-starter-data-jpa | Java持久化規範 |
spring-boot-starter-thymeleaf | 模板引擎 |
spring-boot-starter-web | 快速web應用開發 |
mysql-connector-java | mysql鏈接驅動 |
lombok | 簡化java代碼 |
spring-boot-starter-test | 單元測試 |
技術 | 名稱 |
---|---|
jquery | JavaScript 庫 |
bootstrap | 前端框架 |
listener是servlet規範中定義的一種特殊類。用於監聽servletContext、HttpSession和servletRequest等域對象的建立和銷燬事件。監聽域對象的屬性發生修改的事件。用於在事件發生前、發生後作一些必要的處理。 其主要可用於如下方面: - 一、統計在線人數和在線用戶 - 二、系統啓動時加載初始化信息 - 三、統計網站訪問量 - 四、記錄用戶訪問路徑。
Filter是Servlet技術中最實用的技術,Web開發人員經過Filter技術,對web服務器管理的全部web資源:例如Jsp, Servlet, 靜態圖片文件或靜態 html 文件等進行攔截,從而實現一些特殊的功能。例如實現URL級別的權限訪問控制、過濾敏感詞彙、壓縮響應信息等一些高級功能。它主要用於對用戶請求進行預處理,也能夠對HttpServletResponse進行後處理。使用Filter的完整流程:Filter對用戶請求進行預處理,接着將請求交給Servlet進行處理並生成響應,最後Filter再對服務器響應進行後處理。
Interceptor 在AOP(Aspect-Oriented Programming)中用於在某個方法或字段被訪問以前,進行攔截而後在以前或以後加入某些操做。好比日誌,安全等。通常攔截器方法都是經過動態代理的方式實現。能夠經過它來進行權限驗證,或者判斷用戶是否登錄,或者是像12306 判斷當前時間是不是購票時間。
請求鏈路過程mysql
示例代碼-githubjquery