基於ssh框架web示例

基於ssh框架web示例

介紹

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 判斷當前時間是不是購票時間。

三大器在springboot中使用時,首先實現相應的接口定義類,而後經過配置類將其加入到spring容器中,從而實現相應的功能。

請求鏈路過程mysql

請求鏈路過程

資料

示例代碼-githubjquery

相關文章
相關標籤/搜索