前面一篇有說(shuō)道如何在MyEclipse中搭建maven項(xiàng)目,這里將繼續(xù)介紹如何在搭建好的基礎(chǔ)maven項(xiàng)目中引入我們常用的javaweb框架——SpringMVC!
①在建立好的maven項(xiàng)目中的pom.xml文件引入依賴,代碼如下:
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
|
< 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 >wechat.cuiyongzhi.com</ groupId > < artifactId >wechat</ artifactId > < packaging >war</ packaging > < version >0.0.1-SNAPSHOT</ version > < name >wechat</ name > < url >http://maven.apache.org</ url > < dependencies > <!-- spring --> < dependency > < groupId >org.springframework</ groupId > < artifactId >spring-test</ artifactId > < version >3.2.0.RELEASE</ version > </ dependency > < dependency > < groupId >org.springframework</ groupId > < artifactId >spring-webmvc</ artifactId > < version >3.2.0.RELEASE</ version > </ dependency > < dependency > < groupId >org.springframework</ groupId > < artifactId >spring-core</ artifactId > < version >3.2.0.RELEASE</ version > </ dependency > <!-- mybatis --> < dependency > < groupId >org.mybatis</ groupId > < artifactId >mybatis</ artifactId > < version >3.1.1</ version > </ dependency > < dependency > < groupId >org.mybatis</ groupId > < artifactId >mybatis-spring</ artifactId > < version >1.1.1</ version > </ dependency > <!-- mysql --> < dependency > < groupId >mysql</ groupId > < artifactId >mysql-connector-java</ artifactId > < version >5.1.21</ version > </ dependency > <!-- junit測(cè)試 --> < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >4.11</ version > < scope >test</ scope > </ dependency > <!-- mysql阿里連接池druid --> < dependency > < groupId >com.alibaba</ groupId > < artifactId >druid</ artifactId > < version >0.2.9</ version > </ dependency > <!-- spring aop包 --> < dependency > < groupId >org.aspectj</ groupId > < artifactId >aspectjweaver</ artifactId > < version >1.7.1</ version > </ dependency > <!-- json包 --> < dependency > < groupId >com.alibaba</ groupId > < artifactId >fastjson</ artifactId > < version >1.2.7</ version > </ dependency > <!-- 文件上傳包 --> < dependency > < groupId >commons-fileupload</ groupId > < artifactId >commons-fileupload</ artifactId > < version >1.2.2</ version > </ dependency > <!--servlet包 --> < dependency > < groupId >javax.servlet</ groupId > < artifactId >servlet-api</ artifactId > < version >3.0-alpha-1</ version > </ dependency > < dependency > < groupId >javax.servlet.jsp</ groupId > < artifactId >jsp-api</ artifactId > < version >2.1</ version > < scope >provided</ scope > </ dependency > < dependency > < groupId >javax.servlet</ groupId > < artifactId >jstl</ artifactId > < version >1.2</ version > </ dependency > <!-- 日志包 --> < dependency > < groupId >log4j</ groupId > < artifactId >log4j</ artifactId > < version >1.2.17</ version > </ dependency > </ dependencies > < build > < finalName >wechat</ finalName > </ build > </ project > |
②修改項(xiàng)目路徑下的web.xml文件如下:
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
<? xml version = "1.0" encoding = "UTF-8" ?> < web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:web = "http://java.sun.com/xml/ns/javaee" 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 http://www.springframework.org/schema/websocket http://www.springframework.org/schema/websocket/spring-websocket.xsd" id = "WebApp_ID" version = "3.0" > < display-name >com.cuiyongzhi.wechat</ display-name > < context-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:spring.xml,classpath:spring-mybatis.xml</ param-value > <!-- ,classpath:spring-quartz.xml 用于做任務(wù)調(diào)度 任務(wù)定時(shí)都可以 --> </ context-param > < context-param > < param-name >log4jConfigLocation</ param-name > < param-value >classpath:log4j.properties</ param-value > </ context-param > < listener > < listener-class >org.springframework.web.util.Log4jConfigListener</ listener-class > </ listener > < context-param > < param-name >spring.profiles.active</ param-name > < param-value >dev</ param-value > </ context-param > < context-param > < param-name >spring.profiles.default</ param-name > < param-value >dev</ param-value > </ context-param > < context-param > < param-name >spring.liveBeansView.mbeanDomain</ param-name > < param-value >dev</ param-value > </ context-param > < filter > < filter-name >encodingFilter</ 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 > < init-param > < param-name >forceEncoding</ param-name > < param-value >true</ param-value > </ init-param > </ filter > < listener > < description >spring監(jiān)聽(tīng)器</ description > < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > <!-- 防止內(nèi)存溢出 --> < listener > < listener-class >org.springframework.web.util.IntrospectorCleanupListener</ listener-class > </ listener > < servlet > < description >spring mvc servlet</ description > < servlet-name >springMvc</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class > < init-param > < description >spring mvc 配置文件</ description > < param-name >contextConfigLocation</ param-name > < param-value >classpath:spring-mvc.xml</ param-value > </ init-param > < load-on-startup >1</ load-on-startup > </ servlet > < servlet > < servlet-name >interface_url-init_servlet</ servlet-name > < servlet-class >com.cuiyongzhi.web.start.InterfaceUrlIntiServlet</ servlet-class > < load-on-startup >1</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >springMvc</ servlet-name > < url-pattern >/</ url-pattern > </ servlet-mapping > < welcome-file-list > < welcome-file >/index.jsp</ welcome-file > </ welcome-file-list > < session-config > < session-timeout >300</ session-timeout > </ session-config > < error-page > < error-code >404</ error-code > < location >/WEB-INF/error/error.jsp</ location > </ error-page > < error-page > < error-code >500</ error-code > < location >/WEB-INF/error/error.jsp</ location > </ error-page > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.css</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.gif</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.jpg</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.js</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.xhtml</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.html</ url-pattern > </ servlet-mapping > < filter > < filter-name >DruidWebStatFilter</ filter-name > < filter-class >com.alibaba.druid.support.http.WebStatFilter</ filter-class > < init-param > < param-name >exclusions</ param-name > < param-value >*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</ param-value > </ init-param > </ filter > < filter-mapping > < filter-name >DruidWebStatFilter</ filter-name > < url-pattern >/*</ url-pattern > </ filter-mapping > < servlet > < servlet-name >DruidStatView</ servlet-name > < servlet-class >com.alibaba.druid.support.http.StatViewServlet</ servlet-class > < init-param > <!-- 允許清空統(tǒng)計(jì)數(shù)據(jù) --> < param-name >resetEnable</ param-name > < param-value >true</ param-value > </ init-param > < init-param > <!-- 用戶名 --> < param-name >loginUsername</ param-name > < param-value >cuiyongzhi</ param-value > </ init-param > < init-param > <!-- 密碼 --> < param-name >loginPassword</ param-name > < param-value >123456</ param-value > </ init-param > </ servlet > < servlet-mapping > < servlet-name >DruidStatView</ servlet-name > < url-pattern >/druid/*</ url-pattern > </ servlet-mapping > <!-- 訪問(wèn)監(jiān)控頁(yè)面:http://ip:port/projectName/druid/index.html --> < jsp-config > < jsp-property-group > < display-name >jspConfiguration</ display-name > < url-pattern >*.jsp</ url-pattern > < el-ignored >false</ el-ignored > < scripting-invalid >false</ scripting-invalid > < include-prelude >/WEB-INF/common/head.jsp</ include-prelude > </ jsp-property-group > </ jsp-config > </ web-app > |
③添加數(shù)據(jù)庫(kù)配置信息,這里項(xiàng)目配置的數(shù)據(jù)庫(kù)為MySQL,在 resources下新建config.properties配置文件,設(shè)置如下:
1
2
3
4
|
validationQuery=SELECT 1 jdbc_url=jdbc:mysql: //127.0.0.1:3306/wechat?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull jdbc_username=root jdbc_password= 123456789 |
④在 resources下新建spring.xml配置文件,設(shè)置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<? xml version = "1.0" encoding = "UTF-8" ?> < 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" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 引入屬性文件 --> < context:property-placeholder location = "classpath:config.properties" /> <!-- 自動(dòng)掃描(自動(dòng)注入) --> < context:component-scan base-package = "com.cuiyongzhi.web.service" /> < context:component-scan base-package = "com.cuiyongzhi.wechat.*" /> </ beans > |
⑤在 resources下新建spring-mvc.xml配置文件,設(shè)置如下:
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
|
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:mvc = "http://www.springframework.org/schema/mvc" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:p = "http://www.springframework.org/schema/p" xmlns:context = "http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自動(dòng)掃描controller包下的所有類,使其認(rèn)為spring mvc的控制器 --> < context:component-scan base-package = "com.cuiyongzhi.web.controller" /> <!-- 避免IE執(zhí)行AJAX時(shí),返回JSON出現(xiàn)下載文件 --> < bean id = "mappingJacksonHttpMessageConverter" class = "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" > < property name = "supportedMediaTypes" > < list > < value >text/html;charset=UTF-8</ value > </ list > </ property > </ bean > <!-- 啟動(dòng)Spring MVC的注解功能,完成請(qǐng)求和注解POJO的映射 --> < bean class = "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > < property name = "messageConverters" > < list > < ref bean = "mappingJacksonHttpMessageConverter" /> <!-- json轉(zhuǎn)換器 --> </ list > </ property > </ bean > <!-- 對(duì)模型視圖名稱的解析,即在模型視圖名稱添加前后綴 --> < bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix = "/WEB-INF/views/" p:suffix = ".jsp" /> < bean id = "multipartResolver" class = "org.springframework.web.multipart.commons.CommonsMultipartResolver" > < property name = "defaultEncoding" > < value >UTF-8</ value > </ property > < property name = "maxUploadSize" > < value >32505856</ value > <!-- 上傳文件大小限制為31M,31*1024*1024 --> </ property > < property name = "maxInMemorySize" > < value >4096</ value > </ property > </ bean > </ beans > |
⑥在 resources下新建spring-mybatis.xml配置文件,設(shè)置如下:
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
|
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:tx = "http://www.springframework.org/schema/tx" xmlns:aop = "http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- 配置數(shù)據(jù)源 --> < bean name = "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" init-method = "init" destroy-method = "close" > < property name = "url" value = "${jdbc_url}" /> < property name = "username" value = "${jdbc_username}" /> < property name = "password" value = "${jdbc_password}" /> <!-- 初始化連接大小 --> < property name = "initialSize" value = "5" /> <!-- 連接池最大使用連接數(shù)量 --> < property name = "maxActive" value = "100" /> <!-- 連接池最大空閑 --> < property name = "maxIdle" value = "10" /> <!-- 連接池最小空閑 --> < property name = "minIdle" value = "0" /> <!-- 獲取連接最大等待時(shí)間 --> < property name = "maxWait" value = "60000" /> < property name = "poolPreparedStatements" value = "true" /> < property name = "maxPoolPreparedStatementPerConnectionSize" value = "33" /> < property name = "validationQuery" value = "${validationQuery}" /> < property name = "testOnBorrow" value = "false" /> < property name = "testOnReturn" value = "false" /> < property name = "testWhileIdle" value = "true" /> <!-- 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒 --> < property name = "timeBetweenEvictionRunsMillis" value = "60000" /> <!-- 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 --> < property name = "minEvictableIdleTimeMillis" value = "25200000" /> <!-- 打開(kāi)removeAbandoned功能 --> < property name = "removeAbandoned" value = "true" /> <!-- 1800秒,也就是30分鐘 --> < property name = "removeAbandonedTimeout" value = "1800" /> <!-- 關(guān)閉abanded連接時(shí)輸出錯(cuò)誤日志 --> < property name = "logAbandoned" value = "true" /> <!-- 監(jiān)控?cái)?shù)據(jù)庫(kù) --> <!-- <property name="filters" value="stat" /> --> < property name = "filters" value = "mergeStat" /> </ bean > <!-- myBatis文件 --> < bean id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" > < property name = "dataSource" ref = "dataSource" /> <!-- 自動(dòng)掃描entity目錄, 省掉Configuration.xml里的手工配置 --> < property name = "mapperLocations" value = "classpath:com/cuiyongzhi/web/mapping/*.xml" /> </ bean > < bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer" > < property name = "basePackage" value = "com.cuiyongzhi.web.dao" /> < property name = "sqlSessionFactoryBeanName" value = "sqlSessionFactory" /> </ bean > <!-- 配置事務(wù)管理器 --> < bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" > < property name = "dataSource" ref = "dataSource" /> </ bean > <!-- 注解方式配置事物 --> <!-- <tx:annotation-driven transaction-manager="transactionManager" /> --> <!-- 攔截器方式配置事物 --> < tx:advice id = "transactionAdvice" transaction-manager = "transactionManager" > < tx:attributes > < tx:method name = "add*" propagation = "REQUIRED" /> < tx:method name = "append*" propagation = "REQUIRED" /> < tx:method name = "insert*" propagation = "REQUIRED" /> < tx:method name = "save*" propagation = "REQUIRED" /> < tx:method name = "update*" propagation = "REQUIRED" /> < tx:method name = "modify*" propagation = "REQUIRED" /> < tx:method name = "edit*" propagation = "REQUIRED" /> < tx:method name = "delete*" propagation = "REQUIRED" /> < tx:method name = "remove*" propagation = "REQUIRED" /> < tx:method name = "repair" propagation = "REQUIRED" /> < tx:method name = "delAndRepair" propagation = "REQUIRED" /> < tx:method name = "get*" propagation = "SUPPORTS" /> < tx:method name = "find*" propagation = "SUPPORTS" /> < tx:method name = "load*" propagation = "SUPPORTS" /> < tx:method name = "search*" propagation = "SUPPORTS" /> < tx:method name = "datagrid*" propagation = "SUPPORTS" /> < tx:method name = "*" propagation = "SUPPORTS" /> </ tx:attributes > </ tx:advice > < aop:config > < aop:pointcut id = "transactionPointcut" expression = "execution(* com.cuiyongzhi.web.service..*Impl.*(..))" /> < aop:advisor pointcut-ref = "transactionPointcut" advice-ref = "transactionAdvice" /> </ aop:config > <!-- 配置druid監(jiān)控spring jdbc --> < bean id = "druid-stat-interceptor" class = "com.alibaba.druid.support.spring.stat.DruidStatInterceptor" > </ bean > < bean id = "druid-stat-pointcut" class = "org.springframework.aop.support.JdkRegexpMethodPointcut" scope = "prototype" > < property name = "patterns" > < list > < value >com.cuiyongzhi.web.service.*</ value > </ list > </ property > </ bean > < aop:config > < aop:advisor advice-ref = "druid-stat-interceptor" pointcut-ref = "druid-stat-pointcut" /> </ aop:config > </ beans > |
⑦在 resources下新建log4j.properties配置文件,用于日志的輸出等級(jí)以及輸出位置設(shè)置,設(shè)置如下:
到這里springmvc+mybatis的基本配置文件基本就完成了,大致的項(xiàng)目結(jié)構(gòu)如下:
本篇主要以代碼示例為主,基本的的項(xiàng)目搭建就記錄到這里,下一篇我將簡(jiǎn)述在這個(gè)框架下的一些簡(jiǎn)單應(yīng)用,感謝你的翻閱,如有疑問(wèn)可以討論!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。