客戶關係管理網絡應用程序


關於
一個簡單的Web應用程序,使用Spring MVC和Hibernate管理客戶關係,由XML配置
特徵
語言和技術
- 爪哇
- XML
- mysql
- 春季MVC
- 春季aop
- 冬眠
- JSTL
- JSP
- CSS/JavaScript
發展過程
設置環境
在Eclipse中創建新的動態Web項目
在Workbench [create-database.sql]中創建MySQL數據庫
將罐子導入庫:Web-Inf/lib
- mysql連接器[url]
- JSTL API(用於JSP)[url]
- 春季框架[url]
- Hibernate(必需文件夾)和C3P0(可選文件夾)[url]
- expackJ(用於aop)[url]。
對於Java 9+,包括在Web-Inf/lib中遵循JARS
- javax.activation-1.2.0.jar
- jaxb-api2.3.0.jar
- jaxb-core-2.3.0.jar
- jaxb-impl-2.3.0.jar
測試數據庫連接(項目方面/runtimes/tomcat):創建一個servlet [testdatabaseservlet]
在Web-Inf中包括配置XML文件(Spring MVC和Web)。
在XML文件中配置Spring + Hibernate [Spring-MVC-Crud-Demo-Servlet.xml]
- 定義XML名稱空間和架構位置
- 定義數據庫數據庫 /連接池
- 設置Hibernate會話工廠
- 設置Hibernate Transaction Manager
- 啟用轉運註釋的配置
- 添加支持閱讀Web資源的支持:CSS,Images,JS等。
- 啟用appect j自動代理
測試彈簧控制器:使用方法創建一個控制器類返回“視圖”文件夾中的新JSP文件。
主要的
- 使用Hibernate創建客戶類,並映射到數據庫表。
- 創建CustomerDao接口。
- 使用@repository創建CustomerDaoimpl類
- 向會話工廠注入@autowired
- 實施方法
- 獲取當前的冬眠會話
- 創建一個查詢[org.hibernate.query.query]
- 執行查詢並獲取結果列表
- 返回結果
- 創建服務接口
- 使用@Service創建服務實施
- 向Dao注入@Autowired 。
- 用@transactional實施方法。
- 委託給道的電話。
- 創建/更新customerController
- 使用@Autowired注入客戶服務
- 使用@requestmapping創建一個請求方法
- 從DAO中獲得服務結果或創建模型屬性以綁定表單數據[customerController]
- 創建/更新JSP頁面
- 添加對JSTL核心標籤的支持:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- 使用@Aspect和@component [loggingaspect] [reference]創建方麵類
額外的
- 帶有CSS的Prettify JSP頁面
- 將CSS放入WebContent中的“資源”文件夾中。
- 配置Spring以提供“資源”文件夾。
- JSP中的參考CSS。
- 在Spring XML中配置歡迎文件以從主頁重定向
- 在WebContent中創建一個JSP,與XML [index.jsp]中的歡迎文件的名稱匹配
- 重定向到所需的地址:
<% response.sendRedirect("address"); %>
- 使用@getMapping , @postmapping在控制器中的重構請求方法
JSP
- 支持Spring MVC表單標籤:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -
${pageContext.request.contextPath}在JSP中返回適當的應用名稱。
筆記
- 用於掃描的軟件包必須匹配Spring Configuration XML文件。
- “查看”文件夾包含JSP文件必須匹配Spring Configuration XML文件
- 運行項目:選擇項目root->運行為 - >在服務器上運行。
- 使用sessionFactory.saveorupdate():combine save()和update()[customerdaoimpl]
- @requestmapping (Hanlde所有方法), @getMapping , @postmapping
-
@RequestMapping(path="...", method=RequestMethod.GET) <= @GetMapping(path="...") - 使用“重定向:mapped_method”將轉移到控制器中的給定方法而不是JSP頁面[customerController]
- 使用@transactional [org.springframework]開始和關閉方法的交易[customerdao]
- 使用@repository與DAO實現一起處理異常翻譯。
- 使用@Service進行服務實施。
- 服務層設計模式
- 在服務層而不是DAO中定義@transactional 。
- 在控制器中而不是DAO注入服務。
- 控制器<->服務層<-> dao。
去上面