1. 程式人生 > >手把手教你從最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate(含原始碼下載)

手把手教你從最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate(含原始碼下載)

    本文會介紹從一個最基本的java工程,到Web工程,到整合Spring、SpringMVC、SpringDataJPA+Hibernate。

    平時我們可能是通過一個模板搭建一個工程,或者是直接匯入一個專案,而本文選擇從最基本的java工程開始,目的是為了展示更多原理。

    當然,我們還是從一個最基本的Maven工程開始,其實普通的非Maven工程,搭建過程幾乎是一模一樣的,只是Jar包需要我們手動的新增到工程中,而Maven工程就只是修改配置檔案即可。推薦幾篇相關文章:

    下面就正式開始。

1、基於Maven(如果不使用Maven也可以用傳統的工程)建立最基本的Java工程

    新建工程,選擇Maven Project,Next:

    001

    勾選為簡單的工程(Create a simple project),Next:

    002

    Group id為你的域名反序,通常跟工程原始碼的包名對應,Artifact id為這個Group id中工程的唯一名,根據你的愛好,怎麼填都行,然後Finish:

    003

    這是得到的工程目錄結構是這樣的:

    004

    pom.xml就是Maven的核心檔案。

2、將工程設定為動態網頁模式

    接下來就將工程轉換為Web工程,右鍵開啟工程屬性,如圖,點選左邊選單中的Project Facets,然後點選Convert to faceted from...:

    005

    在右邊,我們勾選Dynamic Web Module(動態網頁),然後點OK:

    006

    這時會多出一個WebContent目錄:

    007

    在WEB-INF目錄下,新增web.xml檔案,內如如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0">
  6. <display-name>SpringDataJPA</display-name>
  7. <welcome-file-list>
  8. <welcome-file>index.html</welcome-file>
  9. </welcome-file-list>
  10. </web-app>

    然後新增一個歡迎頁index.html:

  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <h1>Hello Word!</h1>
  6. </body>
  7. </html>

    這時目錄結構如下:

    008

    這時,就可以右鍵工程,Run On Server了,可以看下效果:

    10

3、整合Spring+SpringMVC

    新建包,並新增一些介面和類(具體程式碼後面會列出來),包結構如圖:

    11

    需要新增jar包,直接修改pom檔案即可,如果為普通工程,按pom.xml中的jar包,新增到工程中即可。

    首先新增使用的spring版本,方便統一管理,然後再新增所有需要的jar包,下面把此處需要的所有jar包新增進來,完成後的pom.xml如下:

  1. <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.anxpp</groupId>
  5. <artifactId>SpringDataJPA</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <properties>
  8. <!-- spring版本號 -->
  9. <spring.version>4.2.5.RELEASE</spring.version>
  10. </properties>
  11. <dependencies>
  12. <!-- spring核心包 -->
  13. <dependency>
  14. <groupId>org.springframework</groupId>
  15. <artifactId>spring-core</artifactId>
  16. <version>${spring.version}</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>org.springframework</groupId>
  20. <artifactId>spring-web</artifactId>
  21. <version>${spring.version}</version>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework</groupId>
  25. <artifactId>spring-orm</artifactId>
  26. <version>${spring.version}</version>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework</groupId>
  30. <artifactId>spring-tx</artifactId>
  31. <version>${spring.version}</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-jdbc</artifactId>
  36. <version>${spring.version}</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-webmvc</artifactId>
  41. <version>${spring.version}</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.springframework</groupId>
  45. <artifactId>spring-aop</artifactId>
  46. <version>${spring.version}</version>
  47. </dependency>
  48. <dependency>
  49. <groupId>org.springframework</groupId>
  50. <artifactId>spring-context-support</artifactId>
  51. <version>${spring.version}</version>
  52. </dependency>
  53. <dependency>
  54. <groupId>org.springframework</groupId>
  55. <artifactId>spring-test</artifactId>
  56. <version>${spring.version}</version>
  57. </dependency>
  58. <dependency>
  59. <groupId>org.springframework</groupId>
  60. <artifactId>spring-orm</artifactId>
  61. <version>${spring.version}</version>
  62. </dependency>
  63. <dependency>
  64. <groupId>org.springframework.data</groupId>
  65. <artifactId>spring-data-jpa</artifactId>
  66. <version>1.10.1.RELEASE</version>
  67. </dependency>
  68. </dependencies>
  69. </project>

    在WEB-INF目錄下新增Spring配置檔案applicationContext.xml,並新增如下內容:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:aop="http://www.springframework.org/schema/aop"xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context-4.2.xsd
  10. http://www.springframework.org/schema/tx
  11. http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
  12. http://www.springframework.org/schema/aop
  13. http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
  14. http://www.springframework.org/schema/mvc
  15. http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
  16. <!-- 開啟IOC註解掃描 -->
  17. <context:component-scanbase-package="com.anxpp.demo"/>
  18. <!-- 開啟MVC註解掃描 -->
  19. <mvc:annotation-driven/>
  20. </beans>

    修改web.xml,將spring新增進去:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0">
  6. <display-name>SpringDataJPA</display-name>
  7. <listener>
  8. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  9. </listener>
  10. <context-param>
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>WEB-INF/applicationContext.xml</param-value>
  13. </context-param>
  14. <servlet>
  15. <servlet-name>springmvc</servlet-name>
  16. <servlet-class>org.springframework.web.servlet.DispatcherServlet
  17. </servlet-class>
  18. <init-param>
  19. <param-name>contextConfigLocation</param-name>
  20. <param-value>classpath*:springmvc-servlet.xml</param-value>
  21. </init-param>
  22. <load-on-startup>1</load-on-startup>
  23. </servlet>
  24. <servlet-mapping>
  25. <servlet-name>springmvc</servlet-name>
  26. <url-pattern>/*</url-pattern>
  27. </servlet-mapping>
  28. <welcome-file-list>
  29. <welcome-file>index.html</welcome-file>
  30. </welcome-file-list>
  31. </web-app>

    下面開始編寫程式碼,注意註解不要忘記寫,在本小節開始部分已經給出了包的層次結構。

    實體User:

  1. package com.anxpp.demo.core.entity;
  2. publicclassUser{
  3. privateInteger id;
  4. privateString name;
  5. publicUser(Integer id,String name){
  6. this.id = id;
  7. this.name = name;
  8. }
  9. publicInteger getId(){
  10. return id;
  11. }
  12. publicvoid setId(Integer id){
  13. this.id = id;
  14. }
  15. publicString getName(){
  16. return name;
  17. }
  18. publicvoid setName(String name){
  19. this.name = name;
  20. 相關推薦

    手把手基本Java工程搭建SpringMVC+SpringDataJPA+Hibernate(原始碼下載)

        本文會介紹從一個最基本的java工程,到Web工程,到整合Spring、SpringMVC、SpringDataJPA+Hibernate。     平時我們可能是通過一個模板搭建一個工程,或者是直接匯入一個專案,而本文選擇從最基本的java工程開始

    手把手0到1進行Java專案實踐

    手把手教你從0到1進行Java專案實踐 雖說工作就是簡單的事情重複做,但不是所有簡單的事你都能有機會做的。 我們平日工作裡,大部分時候都是在做修修補補的工作,而這也是非常重要的。做好修補工作,做好優化工作,足夠讓你升職加薪! 但是如果有機會,去嘗試些自己平日裡少做的事,我覺得是一件值得慶

    Java手把手整合簡潔的SSM框架:SpringMVC + Spring + MyBatis】

    手把手教你整合最簡潔的SSM框架:SpringMVC + Spring + MyBatis 1.介紹 ~ Project introduction 專案整體使用SSM框架:SpringMVC +

    手把手零開始做一個好看的 APP

    @+ error 教你 教授 wip rac tco 需要 apt 前言 從零開始,手把手帶你實現一個「專註睡前的 APP」。睡覺之前如果能有一個 APP,能讓我們寫一寫這一天的見聞或者心得,同時又能看一會段子、瞄一會好看的妹子,放松一下疲憊的身心那該多好,這也是我完成這

    手把手整合優雅SSM框架 SpringMVC + Spring + MyBatis

                            &nbs

    手把手零開始搭建SpringBoot後端專案框架

    原料 新鮮的IntelliJ IDEA、一雙手、以及電腦一臺。 搭建框架 新建專案 開啟IDE,點選File -> New Project。在左側的列表中的選擇Maven專案,點選Next。 填寫GroupId和ArtifactId 什麼是GroupId和Ar

    手把手零認識webpack4.0

    原文連結:https://www.jianshu.com/p/f931f47cbf75 前言: 作為一個現代javascript 應用程式的靜態模組打包器,webpack能將各種資源,如js,css, 圖片等作為模組來處理,是當下前端工程化的一個很受歡迎的工具,webpack目前最新的版本是4.0,文章將在

    手把手原始碼開始搭建自己的以太坊公鏈(四)部署及連線多個節點

    1. 使用相同的創世區塊檔案genesis.json 創世區塊genesis.json檔案內容如下: { "config": { "chainId": 100, "homestea

    【 專欄 】- 手把手零實現Linux裝置驅動程式(基於友善之臂4412開發板)

    手把手教你從零實現Linux裝置驅動程式(基於友善之臂4412開發板) ARM-tiny4412這款CPU是基於ARMv7架構的晶片,目前在網上開發現成資源較少,為了彌補這一缺陷,本人決定將我所學所用的這塊晶片的開發技巧和方法共享

    手把手配置漂亮的PyCharm介面,Python程式設計師必備!

    高逼格超美的IDE介面,是每個程式設計師的夢想!隨著人工智慧/機器學習的興起,Python作為一門“漂亮的語言”,再次獲得廣大程式設計師的關注。而JetBrains出品的PyCharm無疑是最好用的Python IDE之一。俗話說“工欲善其事,必先利其器”,把自己的IDE配置得既有逼格又好看,這是每個Pyth

    jenkins手把手入門到放棄03-安裝Jenkins時web介面出現該jenkins例項似乎已離線

    簡介   很久沒有安裝jenkins了,因為之前用的的伺服器一直正常使用,令人鬱悶的是,之前用jenkins一直沒出過這個問題。 令人更鬱悶的是,我嘗試了好多個歷史版本和最新版本,甚至從之前的伺服器把jenkins在跑的程式打包copy這個伺服器。終究還是不行。   啟動時候,提示:該jenkins例項

    手把手使用spring cloud+dotnet core搭建微服務架構 服務治理(-)

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    手把手Web資料視覺化平臺搭建

    原文連結:http://www.jianshu.com/p/ad1a49375da4 ,原始碼請訪問原文PS.想獲取全部原始碼或者有不懂的問題的感興趣的同學,請訪問原文~一、專案展示這個Web資料視覺化平臺的效果如下(沒加樣式,主要側重功能)效果演示這個資料視覺化Demo能夠

    手把手在CentOS 7.4下搭建Zabbix監控(轉)

    cti 客戶端安裝 ide 界面 軟件安裝 顯示 警告 rac server Linux系統版本:CentOS 7.4 1、安裝前需要先關閉selinux和firewall. 1.1 [[email protected] ~]# vi /etc/seli

    手把手如何在阿里雲ECS搭建Python TensorFlow Jupyter

    前段時間在阿里雲買了一臺伺服器,準備部署網站,近期想玩一些深度學習專案,正好拿來用。TensorFlow官網的安裝僅提及Ubuntu,但我的ECS作業系統是 CentOS 7.6 64位,搭建Python、TensorFlow、Jupyter開發環境過程中遇到很多問題。這裡將具體步驟分享給大家,可以

    Java程式設計0到1--手把手實現“HelloWorld!”

    【宣告】歡迎轉載,但請保留文章原始出處→_→ Java秦學苦練博文的特點:通過“你問我答”的方式,促使你去思考一些小問題,比如:為什麼要安裝JDK?為什麼要配置環境變數?等問題。通過這種“你問我答”,帶你從不同的視角學習Java程式語言! 【正文】  Q&A(你問我答) Q:秦學苦練博主,你好!我

    第一節:學會Java前提-手把手配置JDK環境變量

    ini 按鈕 download 鏈接 理解 驗證 rac win鍵 當前 前言 大家好,今天寫一遍學會Java前提-手把手教你配置JDK環境變量的概述,希望你們喜歡 下載地址 下載jdk,和eclipse就比較簡單了,提供JDK 9 地址: http://www.oracl

    【Android】從無到有:手把手一步步使用簡單的Fragment(三)

    轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/80585416 【本文適用讀者】         用程式碼建立並使用了 Fragment,新增 Fragment 之

    【Android】從無到有:手把手一步步使用簡單的Fragment(二)

    轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/80579389 【本文適用讀者】         targetSdkVersion 版本大於等於 21,即 app 即將有可能