做爲一個JAVA新手,雖然有一些開發的底子,可是在SSM框架的學習中也是步履艱難。俗話說好記性不如爛筆頭,在搭建好一個簡單的基於SSM框架的小項目後,作如下的整理,文中表達不清楚的地方,還望各位給予建議(學習階段借鑑雷老師的「SSM高級整合視頻教程」,由於本人對版權一事不太清楚,因此此處不在上連接了,有興趣的同窗能夠去找一下相關視頻)。html
項目地址:https://gitee.com/soft_luotuo/SSM_Maven前端
win10 64位java
JDK的下載根據本身的形同是64位仍是32位來選擇下載,本人電腦是64位的,因此選擇如圖3.2.1所標註的版本(下載地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html)。mysql
圖 3.2.1git
下載完成後,雙擊exe文件,一直選擇next完成安裝,在安裝完成以後就是環境變量的配置,步驟以下:web
1)計算機->右鍵->屬性->高級系統設置->高級->環境變量。ajax
2) 在系統變量中選擇「新建」按鈕(如圖3.2.2),在彈出界面中,變量名:JAVA_HOME,變量值:C:\Program Files (x86)\Java\jdk1.8.0_144(這裏是個人JDK安裝路徑,各位根據本身的安裝狀況來設置)。spring
圖 3.2.2sql
3) 設置完成JAVA_HOME環境變量後,在環境變量中找到變量名:Path,點擊編輯->新建,增長:%JAVA_HOME%\bin(圖3.2.3)。數據庫
圖 3.2.3
4) 重複上述操做,新建變量名:CLASSPATH,變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
5) 上述4個步驟設置完畢後,下面進行測試,驗證安裝是否成功。快捷鍵WIN+R,打開「運行」,輸入「cmd」,在彈出的DOS命令頁面輸入「java -version」命令,回車,出現以下圖3.2.4效果,即說明安裝JDK成功。
圖 3.2.4
JAVA開發使用的IDE工具也比較多,這裏我選用的Eclipse(下載地址:https://www.eclipse.org/downloads/),這裏值得注意的是對於新手必定要下載正確的JAVA J2EE版本,錯誤的版本會在搭建項目中出現的異常狀況摸不着頭腦,下載完成後,若是不須要修改安裝路徑,一路next到底便可。
安裝完成後,打開Eclipse,選擇導航欄Window->Preference,彈出頁面找到Java->Installed JREs選項,點擊Add按鈕,找到JRE安裝目錄,選擇安裝的JDK文件(圖3.3.1)。
圖 3.3.1
我這裏選擇的是Tomcat7.0的版本,你們能夠根據本身狀況選擇不一樣的版本(下載地址:http://tomcat.apache.org/download-70.cgi),進入下載頁面,選擇Core下的符合本身的版本,如圖3.4.1是我下載的版本。
圖 3.4.1
打開Eclipse中的Window->preference,選擇Server選項下的Runtime Environments選項,點擊Add按鈕添加下載好的本地的Tomcat文件(圖3.4.2),至此Tomcat設置完畢。
圖 3.4.2
我這裏下載的是Maven-3.5.2版本(下載地址:https://maven.apache.org/download.cgi),你們可根據本身的狀況選擇其餘版本下載。下載後解壓到方便記憶的路徑,下面開始配置環境變量。
1) 計算機->右鍵->屬性->高級系統設置->環境變量->"系統變量"下"新建「按鈕。
2) 變量名:MAVEN_HOME,變量值:D:\Java_Tools\apache-maven-3.5.2-bin\apache-maven-3.5.2。
3) 選擇「系統變量」下「Path」->編輯,加入:%MAVEN_HOME%\bin。
設置完成後快捷鍵WIN+R打開「運行」,輸入「cmd」打開DOS命令行頁面,輸入:mvn -version命令,回車,出現如圖3.5.1效果,說明Maven環境配置成功。
圖 3.5.1
Maven數據倉庫分爲:本地倉庫(當前用戶根目錄.m2\repository下),遠程倉庫(包含:中央倉庫(https://repo.maven.apache.org/maven2)、私服、其餘公共倉庫(阿里雲、開源中國等))。當咱們引用jar包的時候,Maven會先從本地倉庫尋找所需jar包,若是本地倉庫中不存在,Maven將會去遠程地址下載所需jar包(由於外網地址訪問可能受限,這裏推薦使用其餘公共倉庫),下面進行相關配置。
1)打開maven的安裝目錄(例如:D:\Java_Tools\apache-maven-3.5.2-bin\apache-maven-3.5.2\conf)中的settings.xml文件,修改本地倉庫位置到D:\Java_Tools\.m2\repository目錄中(注意:Maven安裝後默認的本地倉庫是用戶工做目錄下的「.m2/repository「目錄,如:C:\Users\Administrator\.m2\repository,由於這個目錄中的文件可能會愈來愈多,爲了節省C盤空間,建議本身新建一個單獨目錄保存本地倉庫數據),如圖3.6.1。
<!-- 修改本地倉庫位置 --> <localRepository>D:/Java_Tools/.m2/repository</localRepository>
圖 3.6.1
2)打開settings.xml,修改mirror鏡像信息,如圖3.6.2。
<mirror> <id>alimaven</id> <mirrorOf>aliyun maven</mirrorOf> <name>Central</name> <url>http://maven.aliyun.com/nexus/content/repositories/central</url> </mirror>
圖 3.6.2
4)爲了防止建立的項目中出現一些異常,下面在Settings.xml中配置maven工程的jdk版本是1.8,如圖3.6.3。
<profile> <id>jdk-1.8</id> <activation> <jdk>1.8</jdk> <activeByDefault>true</activeByDefault> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
圖 3.6.3
4) 打開Eclipse->window->preferences->Maven->Installations,點擊Add添加下載後解壓的Maven安裝包的位置,勾選新增的Maven版本(如圖3.6.4)。
圖 3.6.4
4) 打開Eclipse->window->preferences->Maven->User Settings,設置settings.xml的路徑(如圖3.6.5)。
圖 3.6.4
5)配置Maven完成後,查看當前用戶目錄下是否存在.m2目錄(C:\Users\Administrator\.m2),若是不存在,是由於沒有執行任何Maven相關的命令,使用任一Maven相關命令後便可出現.m2目錄,例如:cmd下執行mvn help:system命令,執行完畢後會發現.m2文件夾已經產生。
在3.5和3.6節對Maven環境及數據倉庫配置完畢後,下面來建立Maven項目。
1) 打開Eclipse->Project Explorer->右鍵->New->Other->Maven->Maven Project(圖4.1.1),點擊Next按鈕。
圖 4.1.1
2) 在圖4.1.2中,建立一個Maven工程,點擊Next按鈕。
圖 4.1.2
3) 在圖4.1.3中,按照本身的狀況設置Group Id,Artifct Id,Packaging,點擊Finish按鈕,完成項目的新建(上述三個名詞的具體含義,各位自行查找)。
圖 4.1.3
4) 選擇maven-archetype-webapp,點擊next,如圖4.1.4。
圖 4.1.4
5)下圖4.1.5中GroupId爲項目的基本的包名,Artifact Id爲項目的名稱,Packaging爲打包方式,點擊Finish完成項目的建立。
圖 4.1.5
6)項目建立完畢後,Eclipse會根據Settings.xml文件中的鏡像倉庫地址去查找並下載所需的jar包到本地倉庫(D:\java_tools\.m2\repository)中,同時完善項目的總體目錄架構,如圖4.1.6。
圖 4.1.6
7)工程建立完成後,因爲默認的servlet版本比較低,因此進行版本的修改,否則可能會提示「Cannot change version of project facet Dynamic web module to 2.3」的錯誤提示,在當前項目上右鍵->properties->Project Facets,按照本身的須要修改配置,如圖4.1.7和圖4.1.8。
圖 4.1.7
圖 4.1.8
8)修改完成後,若是web.xml提示錯誤,建議刪除web.xml,去掉上圖中Dynamic Web Module的勾選,點擊Apply按鈕,而後再次勾選Dynamic Web Module選擇適合版本,點擊Apply按鈕,這是會出現如圖提示,點擊圖4.1.9標記內容。
圖 4.1.9
9)彈出頁面中按下圖4.1.10操做,而後保存修改便可。
圖 4.1.10
10)完成後,運行項目正常顯示網頁內容,說明工程建立成功。
下載Spring IDE插件用於web.xml智能提示使用(下載地址:http://spring.io/tools/sts/all),根據本身Eclipse的版本選擇下載,如圖5.1.1。
圖 5.1.1
打開Eclipse->Help->Install New Software,點擊Add,添加已下在的本地Spring IDE文件,點擊OK,如圖5.1.2。
圖 5.1.2
選擇下圖中的文件,去掉最下面複選框的勾選(這個設置會聯網更新,由於Spring IDE已下載到本地,故這裏不須要聯網處理),進行安裝,如圖5.1..3。
圖 5.1..3
包含內容(配置地址:https://mvnrepository.com/):
● Spring
● Spring mvc
● Mybatis
● Mybatis逆向工程包
● 數據庫鏈接、驅動包
● 其餘(jstl、junit、servlet-api)
<dependencies> <!-- spring mvc引用 --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.0.RELEASE</version> </dependency> <!-- spring jdbc 事務控制 --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.0.RELEASE</version> </dependency> <!-- spring aspect引入 提供對aspectj的支持,以即可以方便的將面向切面的功能集成進ide中 --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.0.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency> <!-- 引入mybatis整合spring的適配包 --> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!-- 引入數據鏈接池包 --> <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!-- 引入Mysql驅動 --> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency> <!-- mybatis逆向工程包()做用生產對應的bean以及mapper等內容) 即代碼生成器 --> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <!-- jstl --> <!-- https://mvnrepository.com/artifact/jstl/jstl --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- servlet-api --> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- 引入單元測試包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
注意:Spring mvc對於的xml配置文件,例如:applicationContext.xml中若是報錯提示:「cvc-elt.1: 找不到元素 'beans' 的聲明」,檢查是否缺乏「xmlns="http://www.springframework.org/schema/beans"」內容,添加上便可解決。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!-- 設置spring配置文件的位置 --> <!-- needed for ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 指定applicationContext.xml爲spring的配置文件 --> <!-- maven構建項目的時候classpath指的是resources文件夾位置 --> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 監聽器:監聽上面配置文件部署在哪 (學習地址:http://blog.csdn.net/ysughw/article/details/8992322) --> <!-- Bootstraps the root web application context before servlet initialization --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- springmvc的前端控制器,攔截全部請求,負責職責分派(學習地址:http://jinnianshilongnian.iteye.com/blog/1602617) --> <!-- The front controller of this Spring Web application, responsible for handling all application requests --> <servlet> <!--servlet-name加上"-servlet"爲springmvc的配置文件 --> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <!-- /表示攔截全部請求 --> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 字符編碼過濾器(注意字符編碼過濾器必定要放到全部過濾器以前設置) --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <!-- 強制設置請求編碼格式爲上面設置的utf-8 --> <init-param> <param-name>forceRequestEncoding</param-name> <param-value>true</param-value> </init-param> <!-- 強制設置相應編碼格式爲上面設置的utf-8 --> <init-param> <param-name>forceResponseEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 使用Rest風格的URI,將頁面普通的post請求轉爲指定的delete或put請求 --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
<?xml version="1.0" encoding="UTF-8"?> <!--springmvc的配置文件,包含網站跳轉邏輯的控制及配置 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 設置spring-mvc只掃描Controll控制器。若是use-default-filters設置爲true,則spring會掃描base-pack包或者其中子包的@Controller,@Service,@Componet等類,而後把掃描到的這些類註冊爲bean類。若是use-default-filters設置爲false,context:include-filter的expression設置爲Controller後,只會掃描@Controler類,而後註冊爲bean類。(學習地址:http://blog.csdn.net/chunqiuwei/article/details/16115135) --> <context:component-scan base-package="com.maven.ssm" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!-- 配置視圖解析器,方便頁面返回 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 兩個標準配置 --> <!-- 將spring mvc不能處理的請求交給tomcat --> <mvc:default-servlet-handler /> <!-- 能支持springmvc更高級的一些功能 ,例如JSR303校驗,快捷的ajax請求,映射動態請求等 --> <mvc:annotation-driven /> </beans>
<?xml version="1.0" encoding="UTF-8"?> <!-- spring的配置文件,這裏主要配置和業務邏輯相關的內容 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <!-- 業務邏輯組件掃描,這裏除了springmvc對應的controller以外的其餘組件都須要 --> <context:component-scan base-package="com.maven.ssm"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!-- 數據源鏈接配置 --> <!-- 添加dbconfig.properties文件,設置各個配置節點的值 --> <context:property-placeholder location="classpath:dbconfig.properties" /> <!-- 具體鏈接配置和值的對應關係 --> <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!-- 配置和mybatis的整合 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- mybaits的全局配置文件 --> <property name="configuration" value="classpath:mybatis-config.xml"></property> <!-- 指定數據庫的數據源 --> <property name="dataSource" ref="pooledDataSource"></property> <!-- 指定mybatis,mapper文件的位置 --> <property name="mapperLocations" value="classpath:mapper/*.xml"></property> </bean> <!-- 配 置掃描器,將mybatis接口的實現加入到ioc容器中 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--掃描全部dao接口的實現,加入到ioc容器中 --> <property name="basePackage" value="com.maven.ssm.dao"></property> </bean> <!-- 事務控制的配置 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 控制數據源 --> <property name="dataSource" ref="pooledDataSource"></property> </bean> <!-- 開啓基於註釋的事務,使用xml配置形式的事務(推薦使用配置的方式) --> <aop:config> <!-- 切入表達式(全部返回值類型的service包下或者子包下的全部類中任意多的參數的方法均可以切入) --> <aop:pointcut expression="execution(* com.maven.ssm.service..*(..))" id="txPoint" /> <!-- 指定事務加強的規則 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint" /> </aop:config> <!-- 配置事務加強,事務如何切入 --> <tx:advice id="txAdvice"> <tx:attributes> <!-- 表示全部方法都是事務方法 --> <tx:method name="*" /> <!-- 以get開始的方法都是事務方法 --> <tx:method name="get" read-only="true" /> </tx:attributes> </tx:advice> </beans>
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_test jdbc.driverClass=com.mysql.jdbc.Driver jdbc.user=root jdbc.password=123456
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="mapUnderscoreToCamelCase" value="true"></setting> </settings> <typeAliases> <package name="com.manve.ssm.bean"/> </typeAliases> </configuration>
向pom.xml文件中加入如下代碼,配置mybatis-generator的jar包(注意:上面的pom.xml文件配置中已添加)。
<!-- mybatis逆向工程包()做用生產對應的bean以及mapper等內容) 即代碼生成器 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency>
1) 在項目下建立mbg.xml配置文件。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <properties resource="dbconfig.properties" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.jdbcUrl}" userId="${jdbc.user}" password="${jdbc.password}"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 指定bean生成位置 --> <javaModelGenerator targetPackage="com.maven.ssm.bean" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 指定sql映射文件的生成位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 指定dao接口的生成位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.maven.ssm.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 指定每一個數據庫表的生成策略 --> <table tableName="tbl_emp" domainObjectName="Employee"> </table> <table tableName="tbl_dept" omainObjectName="Department"> </table> </context> </generatorConfiguration>
2) 在com.maven.ssm.test包下建立java測試類MBGTest.java文件,運行生成對應逆向工程設置的文件。
package com.maven.ssm.test; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.zip.*; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class MBGTest { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
3) 配置完成最終項目框架,如圖5.9.1
圖 5.9.1
整個項目的搭建及配置的過程當中遇坑無數,各類百度找出問題,其中常常致使錯誤的反而是漏寫一個字母或者是敲錯一個字母,因此各位在項目搭建的過程必定要全神貫注,不要像我這樣粗枝大葉。
介於本人的文筆功底太弱,因此不作過多的贅述。上述內容中若有問題請留言指正,相互學習。