1. 程式人生 > >IDEA下的Maven+SSM框架搭建

IDEA下的Maven+SSM框架搭建

(1)     Maven設定

Maven是一個專案管理工具,本專案中主要用來對jar包的管理

 

File – Settings -- Maven

Maven中conf 中 settings.xml設定(可要可不要,就是上圖中的local repository)

(2)     建立maven專案

File—New--Project

接著下一步,這裡需要注在Properties中新增一個引數 archetypeCatalog=internal,不加這個引數,在maven生成骨架的時候將會非常慢,有時候直接卡住(很重要,在setting檔案中改映象地址也可以,

http://www.cnblogs.com/kingclever/p/7045239.html)

建立maven專案結果

 

匯入相關配置和包,這是漫長的過程。

 

若是過程中有報

就去垃圾回收站把這個專案刪除即可

 

為專案新增java包

File-- Project  Structure---Modules

 

將java 檔案變成source資料夾,參考

http://www.jianshu.com/p/099eeca28c0f

(3)     pom.xml設定

 
  1. <project xmlns="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/maven-v4_0_0.xsd">

  3. <modelVersion>4.0.0</modelVersion>

  4. <groupId>com.bian.web</groupId>

  5. <artifactId>web-bian</artifactId>

  6. <packaging>war</packaging>

  7. <version>1.0-SNAPSHOT</version>

  8. <name>web-bian Maven Webapp</name>

  9. <url>http://maven.apache.org</url>

  10.  
  11. <properties>

  12. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  13. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

  14.  
  15. <!-- spring版本號 -->

  16. <spring.version>4.2.5.RELEASE</spring.version>

  17.  
  18. <!-- mybatis版本號 -->

  19. <mybatis.version>3.2.8</mybatis.version>

  20.  
  21. <!-- mysql驅動版本號 -->

  22. <mysql-driver.version>5.1.29</mysql-driver.version>

  23.  
  24. <!-- log4j日誌包版本號 -->

  25. <slf4j.version>1.7.18</slf4j.version>

  26. <log4j.version>1.2.17</log4j.version>

  27.  
  28. </properties>

  29.  
  30. <dependencies>

  31. <!-- 新增jstl依賴 -->

  32. <dependency>

  33. <groupId>jstl</groupId>

  34. <artifactId>jstl</artifactId>

  35. <version>1.2</version>

  36. </dependency>

  37.  
  38. <dependency>

  39. <groupId>javax</groupId>

  40. <artifactId>javaee-api</artifactId>

  41. <version>7.0</version>

  42. </dependency>

  43.  
  44. <!-- 新增junit4依賴 -->

  45. <dependency>

  46. <groupId>junit</groupId>

  47. <artifactId>junit</artifactId>

  48. <version>4.11</version>

  49. <!-- 指定範圍,在測試時才會載入 -->

  50. <scope>test</scope>

  51. </dependency>

  52.  
  53. <!-- 新增spring核心依賴 -->

  54. <dependency>

  55. <groupId>org.springframework</groupId>

  56. <artifactId>spring-core</artifactId>

  57. <version>${spring.version}</version>

  58. </dependency>

  59. <dependency>

  60. <groupId>org.springframework</groupId>

  61. <artifactId>spring-web</artifactId>

  62. <version>${spring.version}</version>

  63. </dependency>

  64. <dependency>

  65. <groupId>org.springframework</groupId>

  66. <artifactId>spring-oxm</artifactId>

  67. <version>${spring.version}</version>

  68. </dependency>

  69. <dependency>

  70. <groupId>org.springframework</groupId>

  71. <artifactId>spring-tx</artifactId>

  72. <version>${spring.version}</version>

  73. </dependency>

  74. <dependency>

  75. <groupId>org.springframework</groupId>

  76. <artifactId>spring-jdbc</artifactId>

  77. <version>${spring.version}</version>

  78. </dependency>

  79. <dependency>

  80. <groupId>org.springframework</groupId>

  81. <artifactId>spring-webmvc</artifactId>

  82. <version>${spring.version}</version>

  83. </dependency>

  84. <dependency>

  85. <groupId>org.springframework</groupId>

  86. <artifactId>spring-context</artifactId>

  87. <version>${spring.version}</version>

  88. </dependency>

  89. <dependency>

  90. <groupId>org.springframework</groupId>

  91. <artifactId>spring-context-support</artifactId>

  92. <version>${spring.version}</version>

  93. </dependency>

  94. <dependency>

  95. <groupId>org.springframework</groupId>

  96. <artifactId>spring-aop</artifactId>

  97. <version>${spring.version}</version>

  98. </dependency>

  99.  
  100. <dependency>

  101. <groupId>org.springframework</groupId>

  102. <artifactId>spring-test</artifactId>

  103. <version>${spring.version}</version>

  104. </dependency>

  105.  
  106. <!-- 新增mybatis依賴 -->

  107. <dependency>

  108. <groupId>org.mybatis</groupId>

  109. <artifactId>mybatis</artifactId>

  110. <version>${mybatis.version}</version>

  111. </dependency>

  112.  
  113. <!-- 新增mybatis/spring整合包依賴 -->

  114. <dependency>

  115. <groupId>org.mybatis</groupId>

  116. <artifactId>mybatis-spring</artifactId>

  117. <version>1.2.2</version>

  118. </dependency>

  119.  
  120. <!-- 新增mysql驅動依賴 -->

  121. <dependency>

  122. <groupId>mysql</groupId>

  123. <artifactId>mysql-connector-java</artifactId>

  124. <version>${mysql-driver.version}</version>

  125. </dependency>

  126. <!-- 新增資料庫連線池依賴 -->

  127. <dependency>

  128. <groupId>commons-dbcp</groupId>

  129. <artifactId>commons-dbcp</artifactId>

  130. <version>1.2.2</version>

  131. </dependency>

  132.  
  133. <!-- 新增fastjson -->

  134. <dependency>

  135. <groupId>com.alibaba</groupId>

  136. <artifactId>fastjson</artifactId>

  137. <version>1.1.41</version>

  138. </dependency>

  139.  
  140. <!-- 新增日誌相關jar包 -->

  141. <dependency>

  142. <groupId>log4j</groupId>

  143. <artifactId>log4j</artifactId>

  144. <version>${log4j.version}</version>

  145. </dependency>

  146. <dependency>

  147. <groupId>org.slf4j</groupId>

  148. <artifactId>slf4j-api</artifactId>

  149. <version>${slf4j.version}</version>

  150. </dependency>

  151. <dependency>

  152. <groupId>org.slf4j</groupId>

  153. <artifactId>slf4j-log4j12</artifactId>

  154. <version>${slf4j.version}</version>

  155. </dependency>

  156.  
  157. <!-- log end -->

  158. <!-- 映入JSON -->

  159. <dependency>

  160. <groupId>org.codehaus.jackson</groupId>

  161. <artifactId>jackson-mapper-asl</artifactId>

  162. <version>1.9.13</version>

  163. </dependency>

  164. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->

  165. <dependency>

  166. <groupId>com.fasterxml.jackson.core</groupId>

  167. <artifactId>jackson-core</artifactId>

  168. <version>2.8.0</version>

  169. </dependency>

  170. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->

  171. <dependency>

  172. <groupId>com.fasterxml.jackson.core</groupId>

  173. <artifactId>jackson-databind</artifactId>

  174. <version>2.8.0</version>

  175. </dependency>

  176.  
  177. <dependency>

  178. <groupId>commons-fileupload</groupId>

  179. <artifactId>commons-fileupload</artifactId>

  180. <version>1.3.1</version>

  181. </dependency>

  182.  
  183. <dependency>

  184. <groupId>commons-io</groupId>

  185. <artifactId>commons-io</artifactId>

  186. <version>2.4</version>

  187. </dependency>

  188.  
  189. <dependency>

  190. <groupId>commons-codec</groupId>

  191. <artifactId>commons-codec</artifactId>

  192. <version>1.9</version>

  193. </dependency>

  194. </dependencies>

  195.  
  196.  
  197. <build>

  198. <finalName>web-bian</finalName>

  199. </build>

  200. </project>

設定成功

(4)     spring配置檔案設定:

 

 

4.1  jdbc.properties配置:

 

 

 
  1. driverClasss=com.mysql.jdbc.Driver

  2.  
  3. jdbcUrl=jdbc:mysql://192.168.1.102:3306/netInfoPlatform?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull

  4.  
  5. username=root

  6.  
  7. password=123456

  8.  
  9.  
  10.  
  11. #定義初始連線數

  12.  
  13. initialSize=0

  14.  
  15. #定義最大連線數

  16.  
  17. maxActive=20

  18.  
  19. #定義最大空閒

  20.  
  21. maxIdle=20

  22.  
  23. #定義最小空閒

  24.  
  25. minIdle=1

  26.  
  27. #定義最長等待時間

  28.  
  29. maxWait=60000

 

4.2  log4j.properties配置:

 
  1. log4j.rootLogger=INFO,Console,File

  2.  
  3.  
  4.  
  5. #控制檯日誌

  6.  
  7. log4j.appender.Console=org.apache.log4j.ConsoleAppender

  8.  
  9. log4j.appender.Console.Target=System.out

  10.  
  11. log4j.appender.Console.layout=org.apache.log4j.PatternLayout

  12.  
  13. log4j.appender.Console.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n

  14.  
  15.  
  16.  
  17. #普通檔案日誌

  18.  
  19. log4j.appender.File=org.apache.log4j.RollingFileAppender

  20.  
  21. log4j.appender.File.File=logs/ssm.log

  22.  
  23. log4j.appender.File.MaxFileSize=10MB

  24.  
  25. #輸出日誌,如果換成DEBUG表示輸出DEBUG以上級別日誌

  26.  
  27. log4j.appender.File.Threshold=ALL

  28.  
  29. log4j.appender.File.layout=org.apache.log4j.PatternLayout

  30.  
  31. log4j.appender.File.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n

 

4.3  spring-mvc配置:

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2.  
  3. <beans xmlns="http://www.springframework.org/schema/beans"

  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

  6.  
  7. xmlns:context="http://www.springframework.org/schema/context"

  8.  
  9. xmlns:mvc="http://www.springframework.org/schema/mvc"

  10.  
  11. xsi:schemaLocation="http://www.springframework.org/schema/beans

  12.  
  13. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

  14.  
  15. http://www.springframework.org/schema/context

  16.  
  17. http://www.springframework.org/schema/context/spring-context-4.0.xsd

  18.  
  19. http://www.springframework.org/schema/mvc

  20.  
  21. http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

  22.  
  23.  
  24.  
  25. <!-- 自動掃描 @Controller-->

  26.  
  27. <context:component-scan base-package="com.fzu.edu.controller"/>

  28.  
  29.  
  30.  
  31. <!--避免IE執行AJAX時,返回JSON出現下載檔案 -->

  32.  
  33. <bean id="mappingJacksonHttpMessageConverter"

  34.  
  35. class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">

  36.  
  37. <property name="supportedMediaTypes">

  38.  
  39. <list>

  40.  
  41. <value>text/html;charset=UTF-8</value>

  42.  
  43. </list>

  44.  
  45. </property>

  46.  
  47. </bean>

  48.  
  49. <!-- 啟動SpringMVC的註解功能,完成請求和註解POJO的對映 -->

  50.  
  51. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

  52.  
  53. <property name="messageConverters">

  54.  
  55. <list>

  56.  
  57. <ref bean="mappingJacksonHttpMessageConverter"/> <!-- JSON轉換器 -->

  58.  
  59. </list>

  60.  
  61. </property>

  62.  
  63. </bean>

  64.  
  65.  
  66.  
  67.  
  68.  
  69. <!-- 定義跳轉的檔案的前後綴 ,檢視模式配置 -->

  70.  
  71. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  72.  
  73. <property name="prefix" value="/WEB-INF/jsp/" />

  74.  
  75. <property name="suffix" value=".jsp"/>

  76.  
  77. </bean>

  78.  
  79.  
  80.  
  81. <!-- 檔案上傳配置 -->

  82.  
  83. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

  84.  
  85. <!-- 預設編碼 -->

  86.  
  87. <property name="defaultEncoding" value="UTF-8"/>

  88.  
  89. <!-- 上傳檔案大小限制為31M,31*1024*1024 -->

  90.  
  91. <property name="maxUploadSize" value="32505856"/>

  92.  
  93. <!-- 記憶體中的最大值 -->

  94.  
  95. <property name="maxInMemorySize" value="4096"/>

  96.  
  97. </bean>

  98.  
  99. </beans>

 

4.4  spring-mybatis配置:

 

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2.  
  3. <beans xmlns="http://www.springframework.org/schema/beans"

  4.  
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  6.  
  7. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

  8.  
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans

  10.  
  11. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

  12.  
  13. http://www.springframework.org/schema/context

  14.  
  15. http://www.springframework.org/schema/context/spring-context-3.1.xsd

  16.  
  17. http://www.springframework.org/schema/tx

  18.  
  19. http://www.springframework.org/schema/tx/spring-tx.xsd">

  20.  
  21.  
  22.  
  23. <!-- 自動掃描 -->

  24.  
  25. <context:component-scan base-package="com.fzu.edu"/>

  26.  
  27.  
  28.  
  29. <!-- 第一種方式:載入一個properties檔案 -->

  30.  
  31. <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

  32.  
  33. <property name="location" value="classpath:jdbc.properties"/>

  34.  
  35. </bean>

  36.  
  37.  
  38.  
  39.  
  40.  
  41. <!-- 第二種方式:載入多個properties檔案

  42.  
  43. <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">

  44.  
  45. <property name="locations">

  46.  
  47. <list>

  48.  
  49. <value>classpath:jdbc.properties</value>

  50.  
  51. <value>classpath:common.properties</value>

  52.  
  53. </list>

  54.  
  55. </property>

  56.  
  57. <property name="fileEncoding" value="UTF-8"/>

  58.  
  59. </bean>

  60.  
  61. <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">

  62.  
  63. <property name="properties" ref="configProperties"/>

  64.  
  65. </bean>

  66.  
  67. -->

  68.  
  69.  
  70.  
  71. <!-- 配置資料來源 -->

  72.  
  73. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

  74.  
  75. destroy-method="close">

  76.  
  77. <property name="driverClassName" value="${driverClasss}"/>

  78.  
  79. <property name="url" value="${jdbcUrl}"/>

  80.  
  81. <property name="username" value="${username}"/>

  82.  
  83. <property name="password" value="${password}"/>

  84.  
  85. <!-- 初始化連線大小 -->

  86.  
  87. <property name="initialSize" value="${initialSize}"></property>

  88.  
  89. <!-- 連線池最大數量 -->

  90.  
  91. <property name="maxActive" value="${maxActive}"></property>

  92.  
  93. <!-- 連線池最大空閒 -->

  94.  
  95. <property name="maxIdle" value="${maxIdle}"></property>

  96.  
  97. <!-- 連線池最小空閒 -->

  98.  
  99. <property name="minIdle" value="${minIdle}"></property>

  100.  
  101. <!-- 獲取連線最大等待時間 -->

  102.  
  103. <property name="maxWait" value="${maxWait}"></property>

  104.  
  105. </bean>

  106.  
  107.  
  108.  
  109. <!-- mybatis和spring完美整合,不需要mybatis的配置對映檔案 -->

  110.  
  111. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

  112.  
  113. <property name="dataSource" ref="dataSource"/>

  114.  
  115. <!-- 自動掃描mapping.xml檔案 -->

  116.  
  117. <property name="mapperLocations" value="classpath:mapping/*.xml"></property>

  118.  
  119. </bean>

  120.  
  121.  
  122.  
  123. <!-- DAO介面所在包名,Spring會自動查詢其下的類 -->

  124.  
  125. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

  126.  
  127. <property name="basePackage" value="com.fzu.edu.dao"/>

  128.  
  129. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>

  130.  
  131. </bean>

  132.  
  133.  
  134.  
  135.  
  136.  
  137. <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->

  138.  
  139. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

  140.  
  141. <property name="dataSource" ref="dataSource"/>

  142.  
  143. </bean>

  144.  
  145.  
  146.  
  147. <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->

  148.  
  149. <tx:annotation-driven transaction-manager="transactionManager"/>

  150.  
  151. </beans>

 

(5)     MVC框架設定

5.1  M層:用於放類比如User類

 

5.2  Dao層:是連結資料庫的介面層

 

5.3  Service層:是控制層與Dao層之間的橋樑,主要用於邏輯的編寫

 

 

 

5.4  控制層:是前段與後臺的連線口

 

 

(6)     jdk設定

 

 

 

(7)     tomcat設定

 

 

 

 

(8)     資料庫設定:本案例以mysql為例

mysql搭建過程:自行百度

 

參考部落格   https://blog.csdn.net/qq_29976261/article/details/80541033