天天看點

maven+springMVC+mybatis+junit詳細搭建過程



springmvc+mybatis架構搭建

首先我們先要弄清搭建項目的一般流程,需要注意哪些方面,想要什麼樣的效果,自己的功能有哪些?

(假設效果:項目目錄結構清晰,能夠查詢到本地資料庫中的内容。。)

<a target="_blank"></a>

在src/main/java檔案夾中,建立包cn.springmvc.model(存放javabean),

                                            cn.springmvc.dao(存放spring與mybatis連接配接接口),

                                            cn.springmvc.service(service接口),

                                            cn.springmvc.service.impl(service接口的實作),

                                            cn.springmvc.controller(存放控制層controller)

在src/main/resource檔案夾中,建立包conf(存放配置檔案),

                                                   mapper(mybatis的mapper檔案)

在src/test/java檔案夾中,建立包cn.springmvc.test(存放測試檔案)

在web-inf檔案夾下建立jsp檔案夾(存放jsp檔案)

這樣項目結構基本完成了

打開maven的pom檔案,對本次開發所需使用的架包依次導入(maven項目管理的優勢)

pom.xml(包依賴)

<a target="_blank" href="http://www.open-open.com/lib/view/open1392252233301.html#">?</a>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

<code>&lt;</code><code>project</code> <code>xmlns</code><code>=</code><code>"http://maven.apache.org/pom/4.0.0"</code> <code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>

<code>    </code><code>xsi:schemalocation</code><code>=</code><code>"http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>modelversion</code><code>&gt;4.0.0&lt;/</code><code>modelversion</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>groupid</code><code>&gt;eyas.springmvc&lt;/</code><code>groupid</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>artifactid</code><code>&gt;springmvc&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>packaging</code><code>&gt;war&lt;/</code><code>packaging</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>version</code><code>&gt;0.0.1-snapshot&lt;/</code><code>version</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>name</code><code>&gt;springmvc maven webapp&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>url</code><code>&gt;http://maven.apache.org&lt;/</code><code>url</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>properties</code><code>&gt;</code>

<code>        </code><code>&lt;!-- spring版本号 --&gt;</code>

<code>        </code><code>&lt;</code><code>spring.version</code><code>&gt;3.2.4.release&lt;/</code><code>spring.version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- mybatis版本号 --&gt;</code>

<code>        </code><code>&lt;</code><code>mybatis.version</code><code>&gt;3.2.4&lt;/</code><code>mybatis.version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- log4j日志檔案管理包版本 --&gt;</code>

<code>        </code><code>&lt;</code><code>slf4j.version</code><code>&gt;1.6.6&lt;/</code><code>slf4j.version</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>log4j.version</code><code>&gt;1.2.9&lt;/</code><code>log4j.version</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>properties</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>dependencies</code><code>&gt;</code>

<code>        </code><code>&lt;!-- spring核心包 --&gt;</code>

<code>        </code><code>&lt;!-- springframe start --&gt;</code>

<code>        </code><code>&lt;</code><code>dependency</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;org.springframework&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-core&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;${spring.version}&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>dependency</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-web&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-oxm&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-tx&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-jdbc&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-webmvc&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-aop&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-context-support&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-test&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>        </code><code>&lt;!-- springframe end --&gt;</code>

<code>        </code><code>&lt;!-- mybatis核心包 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;org.mybatis&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;mybatis&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;${mybatis.version}&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- mybatis/spring包 --&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;mybatis-spring&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;1.2.2&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- mysql驅動包 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;mysql&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;mysql-connector-java&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;5.1.29&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- junit測試包 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;junit&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;junit&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;4.11&lt;/</code><code>version</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>scope</code><code>&gt;test&lt;/</code><code>scope</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 阿裡巴巴資料源包 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;com.alibaba&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;druid&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;1.0.2&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- json資料 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;org.codehaus.jackson&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;jackson-mapper-asl&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;1.9.13&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 日志檔案管理包 --&gt;</code>

<code>        </code><code>&lt;!-- log start --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;log4j&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;log4j&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;${log4j.version}&lt;/</code><code>version</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;org.slf4j&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;slf4j-api&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;${slf4j.version}&lt;/</code><code>version</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;slf4j-log4j12&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>        </code><code>&lt;!-- log end --&gt;</code>

<code>    </code><code>&lt;/</code><code>dependencies</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>build</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>finalname</code><code>&gt;springmvc&lt;/</code><code>finalname</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>build</code><code>&gt;</code>

<code>&lt;/</code><code>project</code><code>&gt;</code>

conf/ jdbc.properties(jdbc配置檔案)

<code>jdbc_driverclassname=com.mysql.jdbc.driver</code>

<code>jdbc_url=jdbc:mysql:</code><code>//localhost:3306/mydays?useunicode=true&amp;amp;characterencoding=utf-8</code>

<code>jdbc_username=root</code>

<code>jdbc_password=root</code>

    conf/spring.xml(spring配置檔案的掃描)

<code>&lt;?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code><code>?&gt;</code>

<code>&lt;</code><code>beans</code> <code>xmlns</code><code>=</code><code>"http://www.springframework.org/schema/beans"</code>

<code> </code><code>xmlns:context</code><code>=</code><code>"http://www.springframework.org/schema/context"</code>

<code> </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>

<code> </code><code>xsi:schemalocation="http://www.springframework.org/schema/beans</code>

<code>      </code><code>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd</code>

<code>      </code><code>http://www.springframework.org/schema/context</code>

<code>      </code><code>http://www.springframework.org/schema/context/spring-context.xsd"&gt;</code>

<code>    </code><code>&lt;!-- 引入jdbc配置檔案 --&gt;</code>

<code>    </code><code>&lt;</code><code>context:property-placeholder</code> <code>location</code><code>=</code><code>"classpath:conf/jdbc.properties"</code><code>/&gt;</code>

<code>    </code> 

<code>    </code><code>&lt;!-- 掃描檔案(自動将servicec層注入) --&gt;</code>

<code>    </code><code>&lt;</code><code>context:component-scan</code> <code>base-package</code><code>=</code><code>"cn.springmvc.service"</code><code>/&gt;</code>

<code>&lt;/</code><code>beans</code><code>&gt;</code>

  conf/spring-mybatis.xml(spring與mybatis連接配接屬性)

<code>  </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>

<code>  </code><code>xmlns:p</code><code>=</code><code>"http://www.springframework.org/schema/p"</code>

<code>  </code><code>xmlns:context</code><code>=</code><code>"http://www.springframework.org/schema/context"</code>

<code>  </code><code>xmlns:aop</code><code>=</code><code>"http://www.springframework.org/schema/aop"</code>

<code>  </code><code>xmlns:tx</code><code>=</code><code>"http://www.springframework.org/schema/tx"</code>

<code>  </code><code>xmlns:util</code><code>=</code><code>"http://www.springframework.org/schema/util"</code>

<code>  </code><code>xsi:schemalocation="http://www.springframework.org/schema/beans</code>

<code>    </code><code>http://www.springframework.org/schema/beans/spring-beans-3.2.xsd</code>

<code>    </code><code>http://www.springframework.org/schema/context</code>

<code>    </code><code>http://www.springframework.org/schema/context/spring-context-3.2.xsd</code>

<code>    </code><code>http://www.springframework.org/schema/tx</code>

<code>    </code><code>http://www.springframework.org/schema/tx/spring-tx-3.2.xsd</code>

<code>    </code><code>http://www.springframework.org/schema/aop</code>

<code>    </code><code>http://www.springframework.org/schema/aop/spring-aop-3.2.xsd</code>

<code>    </code><code>http://www.springframework.org/schema/util</code>

<code>    </code><code>http://www.springframework.org/schema/util/spring-util-3.2.xsd"&gt;</code>

<code>    </code><code>&lt;</code><code>bean</code> <code>id</code><code>=</code><code>"datasource"</code> <code>class</code><code>=</code><code>"com.alibaba.druid.pool.druiddatasource"</code> <code>init-method</code><code>=</code><code>"init"</code>

<code>    </code><code>destroy-method</code><code>=</code><code>"close"</code> <code>&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"driverclassname"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;${jdbc_driverclassname}&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"url"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;${jdbc_url}&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"username"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;${jdbc_username}&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"password"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;${jdbc_password}&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 連接配接池最大使用連接配接數 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"maxactive"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;20&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 初始化連接配接大小 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"initialsize"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;1&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 擷取連接配接最大等待時間 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"maxwait"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;60000&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 連接配接池最大空閑 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"maxidle"</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 連接配接池最小空閑 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"minidle"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;3&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 自動清除無用連接配接 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"removeabandoned"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;true&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 清除無用連接配接的等待時間 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"removeabandonedtimeout"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;180&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 連接配接屬性 --&gt;</code>

<code>    </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"connectionproperties"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>value</code><code>&gt;clientencoding=utf-8&lt;/</code><code>value</code><code>&gt;</code>

<code>  </code><code>&lt;/</code><code>bean</code><code>&gt;</code>

<code>    </code><code>&lt;!-- mybatis檔案配置,掃描所有mapper檔案 --&gt;</code>

<code>      </code><code>&lt;</code><code>bean</code> <code>id</code><code>=</code><code>"sqlsessionfactory"</code>

<code>          </code><code>class</code><code>=</code><code>"org.mybatis.spring.sqlsessionfactorybean"</code>

<code>          </code><code>p:datasource-ref</code><code>=</code><code>"datasource"</code>

<code>          </code><code>p:configlocation</code><code>=</code><code>"classpath:conf/mybatis-config.xml"</code>

<code>          </code><code>p:mapperlocations</code><code>=</code><code>"classpath:mapper/*.xml"</code><code>/&gt;</code><code>&lt;!-- configlocation為mybatis屬性 mapperlocations為所有mapper--&gt;</code>

<code>      </code> 

<code>   </code><code>&lt;!-- spring與mybatis整合配置,掃描所有dao --&gt;</code>

<code> </code><code>&lt;</code><code>bean</code> <code>class</code><code>=</code><code>"org.mybatis.spring.mapper.mapperscannerconfigurer"</code>

<code>        </code><code>p:basepackage</code><code>=</code><code>"cn.springmvc.dao"</code>

<code>        </code><code>p:sqlsessionfactorybeanname</code><code>=</code><code>"sqlsessionfactory"</code><code>/&gt;</code>

<code> </code> 

<code>   </code><code>&lt;!-- 對資料源進行事務管理 --&gt;</code>

<code>  </code><code>&lt;</code><code>bean</code> <code>id</code><code>=</code><code>"transactionmanager"</code>

<code>        </code><code>class</code><code>=</code><code>"org.springframework.jdbc.datasource.datasourcetransactionmanager"</code>

<code>        </code><code>p:datasource-ref</code><code>=</code><code>"datasource"</code><code>/&gt;</code>

   cn.springmvc.model/user.java(使用者基本資訊)

<code>package</code> <code>cn.springmvc.model;</code>

<code>/**</code>

<code> </code><code>* 使用者表</code>

<code> </code><code>*/</code>

<code>public</code> <code>class</code> <code>user {</code>

<code>    </code><code>private</code> <code>int</code> <code>id;</code>

<code>    </code><code>private</code> <code>int</code> <code>state;</code>

<code>    </code><code>private</code> <code>string nickname;</code>

<code>    </code><code>public</code> <code>int</code> <code>getid() {</code>

<code>        </code><code>return</code> <code>id;</code>

<code>    </code><code>}</code>

<code>    </code><code>public</code> <code>void</code> <code>setid(</code><code>int</code> <code>id) {</code>

<code>        </code><code>this</code><code>.id = id;</code>

<code>    </code><code>public</code> <code>int</code> <code>getstate() {</code>

<code>        </code><code>return</code> <code>state;</code>

<code>    </code><code>public</code> <code>void</code> <code>setstate(</code><code>int</code> <code>state) {</code>

<code>        </code><code>this</code><code>.state = state;</code>

<code>    </code><code>public</code> <code>string getnickname() {</code>

<code>        </code><code>return</code> <code>nickname;</code>

<code>    </code><code>public</code> <code>void</code> <code>setnickname(string nickname) {</code>

<code>        </code><code>this</code><code>.nickname = nickname;</code>

<code>}</code>

cn.springmvc.dao/userdao.java(dao操作接口)

<code>package</code> <code>cn.springmvc.dao;</code>

<code>import</code> <code>cn.springmvc.model.user;</code>

<code>public</code> <code>interface</code> <code>userdao {</code>

<code>    </code><code>/**</code>

<code>     </code><code>* 添加新使用者</code>

<code>     </code><code>* @param user</code>

<code>     </code><code>* @return</code>

<code>     </code><code>*/</code>

<code>    </code><code>public</code> <code>int</code> <code>insertuser(user user);</code>

cn.springmvc.service/userservice.java(service層接口)

<code>package</code> <code>cn.springmvc.service;</code>

<code>public</code> <code>interface</code> <code>userservice {</code>

cn.springmvc.service.impl/userserviceimpl.java(service層接口實作)

<code>package</code> <code>cn.springmvc.service.impl;</code>

<code>import</code> <code>org.springframework.beans.factory.annotation.autowired;</code>

<code>import</code> <code>org.springframework.stereotype.service;</code>

<code>import</code> <code>cn.springmvc.dao.userdao;</code>

<code>import</code> <code>cn.springmvc.service.userservice;</code>

<code>@service</code>

<code>public</code> <code>class</code> <code>userserviceimpl</code><code>implements</code> <code>userservice{</code>

<code>    </code><code>@autowired</code>

<code>    </code><code>private</code> <code>userdao userdao;</code>

<code>    </code><code>@override</code>

<code>    </code><code>public</code> <code>int</code> <code>insertuser(user user) {</code>

<code>        </code><code>// todo auto-generated method stub</code>

<code>        </code><code>return</code> <code>userdao.insertuser(user);</code>

   conf/mybatis-config.xml(mybatis配置的基本檔案)

<code>&lt;?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code> <code>?&gt;</code>

<code>&lt;!doctype configuration</code>

<code>public "-//mybatis.org//dtd config 3.0//en"</code>

<code>"http://mybatis.org/dtd/mybatis-3-config.dtd"&gt;</code>

<code>&lt;</code><code>configuration</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 命名空間 --&gt;</code>

<code>    </code><code>&lt;</code><code>typealiases</code><code>&gt;</code>

<code>         </code><code>&lt;</code><code>typealias</code> <code>alias</code><code>=</code><code>"user"</code> <code>type</code><code>=</code><code>"cn.springmvc.model.user"</code><code>/&gt;</code>

<code>    </code><code>&lt;/</code><code>typealiases</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 映射map --&gt;</code>

<code>    </code><code>&lt;</code><code>mappers</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>mappers</code><code>&gt;</code>

<code>&lt;/</code><code>configuration</code><code>&gt;</code>

mapper/usermapper.xml(mybatis的實作)

<code>&lt;!doctype mapper</code>

<code> </code><code>public "-//mybatis.org//dtd mapper 3.0//en"</code>

<code>"http://mybatis.org/dtd/mybatis-3-mapper.dtd"&gt;</code>

<code>&lt;</code><code>mapper</code> <code>namespace</code><code>=</code><code>"cn.springmvc.dao.userdao"</code><code>&gt;</code>

<code>           </code> 

<code>         </code><code>&lt;</code><code>insert</code> <code>id</code><code>=</code><code>"insertuser"</code> <code>parametertype</code><code>=</code><code>"user"</code> <code>keyproperty</code><code>=</code><code>"id"</code><code>&gt;</code>

<code>             </code><code>insert into days_user( </code>

<code>         </code><code>state,</code>

<code>         </code><code>nickname)</code>

<code>         </code><code>values</code>

<code>         </code><code>(       </code>

<code>         </code><code>#{state},</code>

<code>         </code><code>#{nickname})</code>

<code>         </code><code>&lt;/</code><code>insert</code><code>&gt;</code>

<code>         </code> 

<code>&lt;/</code><code>mapper</code><code>&gt;</code>

這樣就完成了基本插入使用者的功能!

cn.springmvc.test/usertest.java(使用者測試子產品)

<code>package</code> <code>cn.springmvc.test;</code>

<code>import</code> <code>org.junit.before;</code>

<code>import</code> <code>org.junit.test;</code>

<code>import</code> <code>org.springframework.context.applicationcontext;</code>

<code>import</code> <code>org.springframework.context.support.classpathxmlapplicationcontext;</code>

<code>public</code> <code>class</code> <code>usertest {</code>

<code>private</code> <code>userservice userservice;</code>

<code>    </code><code>@before</code>

<code>    </code><code>public</code> <code>void</code> <code>before(){                                                                   </code>

<code>        </code><code>@suppresswarnings</code><code>(</code><code>"resource"</code><code>)</code>

<code>        </code><code>applicationcontext context =</code><code>new</code> <code>classpathxmlapplicationcontext(</code><code>new</code> <code>string[]{</code><code>"classpath:conf/spring.xml"</code>

<code>                </code><code>,</code><code>"classpath:conf/spring-mybatis.xml"</code><code>});</code>

<code>        </code><code>userservice = (userservice) context.getbean(</code><code>"userserviceimpl"</code><code>);</code>

<code>    </code><code>@test</code>

<code>    </code><code>public</code> <code>void</code> <code>adduser(){</code>

<code>        </code><code>user user =</code><code>new</code> <code>user();</code>

<code>        </code><code>user.setnickname(</code><code>"你好"</code><code>);</code>

<code>        </code><code>user.setstate(</code><code>2</code><code>);</code>

<code>        </code><code>system.out.println(userservice.insertuser(user));</code>

測試結果如圖:

maven+springMVC+mybatis+junit詳細搭建過程

即完成插入功能!

    web.xml(web功能配置)

<code>&lt;</code><code>web-app</code> <code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>

<code>    </code><code>xmlns</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee"</code> <code>xmlns:web</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</code>

<code>    </code><code>xsi:schemalocation</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</code>

<code>    </code><code>id</code><code>=</code><code>"webapp_id"</code> <code>version</code><code>=</code><code>"2.5"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>display-name</code><code>&gt;archetype created web application&lt;/</code><code>display-name</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 讀取spring配置檔案 --&gt;</code>

<code>    </code><code>&lt;</code><code>context-param</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>param-name</code><code>&gt;contextconfiglocation&lt;/</code><code>param-name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>param-value</code><code>&gt;classpath:conf/spring.xml;</code>

<code>            </code><code>classpath:conf/spring-mybatis.xml</code>

<code>        </code><code>&lt;/</code><code>param-value</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>context-param</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 設計路徑變量值 --&gt;</code>

<code>        </code><code>&lt;</code><code>param-name</code><code>&gt;webapprootkey&lt;/</code><code>param-name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>param-value</code><code>&gt;springmvc.root&lt;/</code><code>param-value</code><code>&gt;</code>

<code>    </code><code>&lt;!-- spring字元集過濾器 --&gt;</code>

<code>    </code><code>&lt;</code><code>filter</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>filter-name</code><code>&gt;springencodingfilter&lt;/</code><code>filter-name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>filter-class</code><code>&gt;org.springframework.web.filter.characterencodingfilter&lt;/</code><code>filter-class</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>init-param</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>param-name</code><code>&gt;encoding&lt;/</code><code>param-name</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>param-value</code><code>&gt;utf-8&lt;/</code><code>param-value</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>init-param</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>param-name</code><code>&gt;forceencoding&lt;/</code><code>param-name</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>param-value</code><code>&gt;true&lt;/</code><code>param-value</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>filter</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>filter-mapping</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>url-pattern</code><code>&gt;/*&lt;/</code><code>url-pattern</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>filter-mapping</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 日志記錄 --&gt;</code>

<code>        </code><code>&lt;!-- 日志配置檔案路徑 --&gt;</code>

<code>        </code><code>&lt;</code><code>param-name</code><code>&gt;log4jconfiglocation&lt;/</code><code>param-name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>param-value</code><code>&gt;classpath:conf/log4j.properties&lt;/</code><code>param-value</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 日志頁面的重新整理間隔 --&gt;</code>

<code>        </code><code>&lt;</code><code>param-name</code><code>&gt;log4jrefreshinterval&lt;/</code><code>param-name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>param-value</code><code>&gt;6000&lt;/</code><code>param-value</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>listener</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>listener-class</code><code>&gt;org.springframework.web.util.log4jconfiglistener&lt;/</code><code>listener-class</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>listener</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>listener-class</code><code>&gt;org.springframework.web.context.contextloaderlistener&lt;/</code><code>listener-class</code><code>&gt;</code>

<code>    </code><code>&lt;!-- springmvc核心配置 --&gt;</code>

<code>    </code><code>&lt;</code><code>servlet</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>servlet-name</code><code>&gt;spring&lt;/</code><code>servlet-name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>servlet-class</code><code>&gt;org.springframework.web.servlet.dispatcherservlet&lt;/</code><code>servlet-class</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>param-name</code><code>&gt;contextconfiglocation&lt;/</code><code>param-name</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>param-value</code><code>&gt;classpath:conf/spring-mvc.xml&lt;/</code><code>param-value</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>load-on-startup</code><code>&gt;2&lt;/</code><code>load-on-startup</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>servlet</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>servlet-mapping</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>url-pattern</code><code>&gt;*.do&lt;/</code><code>url-pattern</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>servlet-mapping</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>welcome-file-list</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;index.jsp&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>welcome-file-list</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 錯誤跳轉頁面 --&gt;</code>

<code>    </code><code>&lt;</code><code>error-page</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 路徑不正确 --&gt;</code>

<code>        </code><code>&lt;</code><code>error-code</code><code>&gt;404&lt;/</code><code>error-code</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>location</code><code>&gt;/web-inf/errorpage/404.jsp&lt;/</code><code>location</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>error-page</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 沒有通路權限,通路被禁止 --&gt;</code>

<code>        </code><code>&lt;</code><code>error-code</code><code>&gt;405&lt;/</code><code>error-code</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>location</code><code>&gt;/web-inf/errorpage/405.jsp&lt;/</code><code>location</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 内部錯誤 --&gt;</code>

<code>        </code><code>&lt;</code><code>error-code</code><code>&gt;500&lt;/</code><code>error-code</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>location</code><code>&gt;/web-inf/errorpage/500.jsp&lt;/</code><code>location</code><code>&gt;</code>

<code>&lt;/</code><code>web-app</code><code>&gt;</code>

conf/spring-mvc.xml(mvc配置檔案)

<code>  </code><code>xmlns:mvc</code><code>=</code><code>"http://www.springframework.org/schema/mvc"</code>

<code>  </code><code>xsi:schemalocation="</code>

<code>    </code><code>http://www.springframework.org/schema/beans</code>

<code>    </code><code>http://www.springframework.org/schema/mvc</code>

<code>    </code><code>http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"&gt;</code>

<code>    </code><code>&lt;!-- 掃描controller(controller層注入) --&gt;</code>

<code>   </code><code>&lt;</code><code>context:component-scan</code> <code>base-package</code><code>=</code><code>"cn.springmvc.controller"</code><code>/&gt;</code>

<code>   </code> 

<code>   </code><code>&lt;!-- 避免ie在ajax請求時,傳回json出現下載下傳 --&gt;</code>

<code>   </code><code>&lt;</code><code>bean</code> <code>id</code><code>=</code><code>"jacksonmessageconverter"</code> <code>class</code><code>=</code><code>"org.springframework.http.converter.json.mappingjacksonhttpmessageconverter"</code><code>&gt;    </code>

<code>        </code><code>&lt;</code><code>property</code> <code>name</code><code>=</code><code>"supportedmediatypes"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>list</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>value</code><code>&gt;text/html;charset=utf-8&lt;/</code><code>value</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>list</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>bean</code><code>&gt;</code>

<code>   </code><code>&lt;!-- 對模型視圖添加前字尾 --&gt;</code>

<code>     </code><code>&lt;</code><code>bean</code> <code>id</code><code>=</code><code>"viewresolver"</code> <code>class</code><code>=</code><code>"org.springframework.web.servlet.view.internalresourceviewresolver"</code>

<code>      </code><code>p:prefix</code><code>=</code><code>"/web-inf/jsp/"</code> <code>p:suffix</code><code>=</code><code>".jsp"</code><code>/&gt;</code>

    conf/log4j.properties(日志記錄的配置檔案)

<code>### set log levels ###</code>

<code>#log4j.rootlogger = debug , stdout , d , e</code>

<code>log4j.rootlogger = debug , stdout , d</code>

<code>###  output to the console ###</code>

<code>log4j.appender.stdout = org.apache.log4j.consoleappender</code>

<code>log4j.appender.stdout.target = system.out</code>

<code>log4j.appender.stdout.layout = org.apache.log4j.patternlayout</code>

<code>#log4j.appender.stdout.layout.conversionpattern = %d{absolute} %5p %c{ 1 }:%l - %m%n</code>

<code>log4j.appender.stdout.layout.conversionpattern = %-d{yyyy-mm-dd hh:mm:ss} [%c]-[%p] %m%n</code>

<code>### output to the log file ###</code>

<code>log4j.appender.d = org.apache.log4j.dailyrollingfileappender</code>

<code>log4j.appender.d.file = ${springmvc.root}/web-inf/logs/log.log</code>

<code>log4j.appender.d.append = true</code>

<code>log4j.appender.d.threshold = debug</code>

<code>log4j.appender.d.layout = org.apache.log4j.patternlayout</code>

<code>log4j.appender.d.layout.conversionpattern = %-d{yyyy-mm-dd hh:mm:ss} [ %t:%r ] - [ %p ] %m%n</code>

<code>### save exception information to separate file ###</code>

<code>log4j.appender.d.file = ${springmvc.root}/web-inf/logs/error.log</code>

<code>log4j.appender.d.threshold = error</code>

web-inf/jsp/index.jsp(測試檔案)

<code>&lt;%@ page language=</code><code>"java"</code> <code>contenttype=</code><code>"text/html; charset=utf-8"</code>

<code>    </code><code>pageencoding=</code><code>"utf-8"</code><code>%&gt;</code>

<code>&lt;!doctype html public</code><code>"-//w3c//dtd html 4.01 transitional//en"</code> <code>"http://www.w3.org/tr/html4/loose.dtd"</code><code>&gt;</code>

<code>&lt;html&gt;</code>

<code>&lt;head&gt;</code>

<code>&lt;meta http-equiv=</code><code>"content-type"</code> <code>content=</code><code>"text/html; charset=utf-8"</code><code>&gt;</code>

<code>&lt;title&gt;insert title here&lt;/title&gt;</code>

<code>&lt;/head&gt;</code>

<code>&lt;body&gt;</code>

<code>&lt;h1&gt;歡迎你!!!&lt;/h1&gt;</code>

<code>&lt;/body&gt;</code>

<code>&lt;/html&gt;</code>

cn.springmvc.controller/usercomtroller.java(controller層控制)

<code>package</code> <code>cn.springmvc.controller;</code>

<code>import</code> <code>org.springframework.stereotype.controller;</code>

<code>import</code> <code>org.springframework.web.bind.annotation.requestmapping;</code>

<code>@controller</code>

<code>@requestmapping</code><code>(</code><code>"/"</code><code>)</code>

<code>public</code> <code>class</code> <code>usercontroller {</code>

<code>    </code><code>@requestmapping</code><code>(</code><code>"index"</code><code>)</code>

<code>    </code><code>public</code> <code>string index(){</code>

<code>        </code><code>return</code> <code>"index"</code><code>;</code>

将該項目部署到本地tomcat6中

右擊該項目選擇run as,選擇run on server

選擇自己建立的tomcat6運作如圖:

maven+springMVC+mybatis+junit詳細搭建過程

控制台列印出日志如圖(啟動成功):

maven+springMVC+mybatis+junit詳細搭建過程

在浏覽器中輸入:http://localhost:8080/springmvc/index.do 進行測試

效果如圖(傳回成功):

maven+springMVC+mybatis+junit詳細搭建過程

http://download.csdn.net/detail/fengerfhf/6916831

來自:http://my.oschina.net/u/1011897/blog/199172