前不久學完了spring和mybatis基礎,因而決定來整合ssm。可是跟着學長的博客教程走的時候,出現了不少問題,因而打算轉載一下他的博客,並加上我本身的理解,來寫這麼一篇博客。那麼,請務必包含耐性,內容較多,慢慢來實現ssm的helloworld入門項目(原出處:http://blog.csdn.net/lxfhahaha/article/details/57078994)css
1.1 mysql數據庫安裝,此處直接引用學長的教程
http://blog.csdn.net/lxfhahaha/article/details/56847353html
1.2 Tomcat安裝
http://blog.csdn.net/zyf2333/article/details/77387649。前端
1.3 maven安裝
(安裝教程:https://jingyan.baidu.com/article/fd8044fadc1ac15031137a12.html)
此處我是下載到D盤,而後本身在maven目錄下建立了一個repository文件夾(隨便取名)
而後打開conf文件夾下的settings.xml,在大約100行左右,修改圈中的目錄,此處目錄寫你剛剛建立的repository文件夾的目錄,如上圖中,個人repository目錄是 D:\maven\repository,那此處就改爲個人目錄(沒有<localRepository>
的話就本身添加就是的了)
接下來在大約150行左右,在<mirrors>
元素之間添加以下代碼java
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror>
最後效果以下 mysql
1.3.1 maven是幹嗎的?
答:百度上也有,說是管理jar包的。通俗點就是:若是你之前有過使用eclipse的經驗,就會知道,那麼當咱們須要引用外來jar包的時候,都會本身找jar包,而後下載並添加到項目運行環境中。而使用maven,則能夠自動下載,不用咱們本身去下載了。或者有時候咱們用eclipse導入spring支持的包時候,也須要本身添加所須要的jar包,運用maven就能夠自動添加了。
1.3.2 建立repository文件夾幹嗎?
答:這個文件夾是用來存放maven自動下載的jar包的。咱們第一次使用的時候,會進行下載,這樣會耗一點時間,之後咱們再用就直接用這個文件夾下的jar包了。
1.3.3 爲何要修改setting.xml中的<localRepository>
答:咱們上面說了,maven會下載jar包並存放到本身創好的repository文件夾下。這個操做就是設置讓maven把下載下來的jar包放入repository文件夾
1.3.4 爲何要修改setting.xml中的<mirror>
?
答:咱們說了,maven會自動下載。那麼它從哪一個網站下載呢?此處就要用到這個<mirror>
了。因爲maven默認的下載地址是國外的網站,可能因爲牆的緣由下載會超級超級慢。所以咱們自動添加幾個國內的網站,此處就用了阿里雲。能夠多添加幾個網站,由於有些網站可能jar包不是很全,所以多添加幾個以防萬一
1.3.5 要是添加了好幾個網站後也沒有我想要的jar包呢?
答:要麼再加幾個網站,要麼本身手動添加(方法後面講)web
1.4 自行安裝IDEA,這裏很少說了spring
在建立以前,請自行在數據庫中建立名爲」example」的數據庫,裏面有個user表。以下: sql
點擊next,填寫對應的GroupId,ArtifactId(GroupId隨意填,我也不太知道有什麼用。ArtifactId就是你項目名)
(PS:接下來不要糾結個人項目名稱,由於我是同時開一個helloworld2,而後又用到了我已經架構好了的helloworld項目) 數據庫
點擊next,此處就用到maven了。
而後next,最後finish,而後慢慢等。剛剛開始建立項目的時候,IDEA要花點時間來建立項目,等一下就行了(ps:有點慢的,慢慢等) apache
建立完了後,原生態目錄應該以下(目錄說明:.idea和helloworld.iml不用管,也不要刪,是IDEA自己的配置文件;src就是咱們寫項目的地方了。pom.xml是用來配合maven的。咱們要用什麼jar包,寫在pom.xml中,d盤中的maven就會自動從<mirror>
中下載到repository文件夾中)
接着,執行以下操做:
1. 在main的java文件夾上,鼠標右鍵,找到 make directory as,選擇Sources root
2. 在main的resources文件夾上,鼠標右鍵,找到make directory as,選擇Resources root
3. 在test的java文件夾上,鼠標右鍵,找到make directory as,選擇Test Sources root
4. 在test的resources文件夾上,鼠標右鍵,找到make directory as,選擇Test Resources root
繼續修改目錄結構,增長一些文件夾及文件,這些都是等一下要用的到的
1. src->main->java下新建package com,再新建package springmvc,這兩個對應咱們剛開始的groupid
2. springmvc包下新建四個包,controller包用來放前臺url映射文件,dao用來放與數據庫的接口文件,entity用來放實體類文件,service用來放本身定義的接口
3. applicationContext.xml是spring配置文件
4. sqlmap文件夾裏面放實體與數據庫的映射文件
5. generator.xml和generator.properties是mybatis的配置文件
6. jdbc.properties是數據庫相關信息
7. log4j.properties是日誌配置文件
8. webapp下新建css、images等文件,用來放前端資源
9. web-inf下新建views文件件,jsp文件就放這裏面了
修改後目錄以下:
(PS:此處有些人項目可能不會像我這樣是「樹枝狀」,而是變成了」com.springmvc.controller.dao.entity.service」。即包都擠在一塊兒去了。解決方案:如圖,把劃線部分勾掉就行了)
3.一、配置pom.xml文件,引入所須要的jar包
以前說了,pom.xml是用來配合maven使用的,咱們想要什麼jar包,直接在pom.xml中寫出來,maven就會自動幫咱們下載。當你剛剛開始用maven時候,repository文件夾裏面仍是空的,所以要花時間來下載,請直接把接下來的代碼複製黏貼。在這裏,咱們只須要關注<dependency>標籤就行了
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.springtest</groupId> <artifactId>helloworld</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>helloworld Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.1.1.RELEASE</version> </dependency> <!-- springframe end --> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.1</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- mysql驅動包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- junit測試包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>