本文會介紹從一個最基本的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. 相關文章