一.創建maven的web項目
(1)選擇項目的骨架
(2)寫項目的坐標
(3)maven的設置
設置maven的本地倉庫,以及配置文件的位置,同時點擊+號,填入archetypeCatalog和internal,讓maven讀取本地配置即可(這樣能讓idea快速的創建maven的web工程)。
然后點擊next
(4)創建完成
點擊finish
二.添加目錄並導入依賴
(一)添加java目錄,main目錄下創建java目錄,並且將其標記為Sources Root
(2) 在main文件夾下創建resources目錄,並將其標記為Resources Root
(如果有需要,可以在src目錄下創建test文件夾,並創建java和resources文件夾,並將它們分別標記為Test Resources Root和Test Resources Root,這里就不創建了)
最后目錄結構如下
(3)pom文件的編寫(導入相關依賴)
maven.compiler.source和maven.compiler.target標簽中寫jdk的版本
1 <properties> 2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 3 <maven.compiler.source>1.8</maven.compiler.source> 4 <maven.compiler.target>1.8</maven.compiler.target> 5 6 <!--定義版本號 ${org.springframework.version}--> 7 <org.springframework.version>5.0.7.RELEASE</org.springframework.version> 8 <org.mybatis.version>3.4.6</org.mybatis.version> 9 10 </properties> 11 12 <dependencies> 13 14 <!--單元測試--> 15 <dependency> 16 <groupId>junit</groupId> 17 <artifactId>junit</artifactId> 18 <version>4.12</version> 19 <scope>test</scope> 20 </dependency> 21 <!--lombok--> 22 <dependency> 23 <groupId>org.projectlombok</groupId> 24 <artifactId>lombok</artifactId> 25 <version>1.16.6</version> 26 </dependency> 27 <!-- servlet-api --> 28 <dependency> 29 <groupId>javax.servlet</groupId> 30 <artifactId>servlet-api</artifactId> 31 <version>2.5</version> 32 <scope>provided</scope> 33 </dependency> 34 <!--mysql驅動--> 35 <dependency> 36 <groupId>mysql</groupId> 37 <artifactId>mysql-connector-java</artifactId> 38 <version>5.1.21</version> 39 </dependency> 40 <!-- druid --> 41 <dependency> 42 <groupId>com.alibaba</groupId> 43 <artifactId>druid</artifactId> 44 <version>1.0.14</version> 45 </dependency> 46 <!-- common-lang --> 47 <dependency> 48 <groupId>commons-lang</groupId> 49 <artifactId>commons-lang</artifactId> 50 <version>2.6</version> 51 </dependency> 52 <!--spring-test--> 53 <dependency> 54 <groupId>org.springframework</groupId> 55 <artifactId>spring-test</artifactId> 56 <version>${org.springframework.version}</version> 57 <scope>test</scope> 58 </dependency> 59 <!--spring-core--> 60 <dependency> 61 <groupId>org.springframework</groupId> 62 <artifactId>spring-core</artifactId> 63 <version>${org.springframework.version}</version> 64 </dependency> 65 <!--spring-context--> 66 <dependency> 67 <groupId>org.springframework</groupId> 68 <artifactId>spring-context</artifactId> 69 <version>${org.springframework.version}</version> 70 </dependency> 71 <!--spring-context-support--> 72 <dependency> 73 <groupId>org.springframework</groupId> 74 <artifactId>spring-context-support</artifactId> 75 <version>${org.springframework.version}</version> 76 </dependency> 77 <!--spring-expression--> 78 <dependency> 79 <groupId>org.springframework</groupId> 80 <artifactId>spring-expression</artifactId> 81 <version>${org.springframework.version}</version> 82 </dependency> 83 <!--spring-jdbc--> 84 <dependency> 85 <groupId>org.springframework</groupId> 86 <artifactId>spring-jdbc</artifactId> 87 <version>${org.springframework.version}</version> 88 </dependency> 89 <!--spring-tx--> 90 <dependency> 91 <groupId>org.springframework</groupId> 92 <artifactId>spring-tx</artifactId> 93 <version>${org.springframework.version}</version> 94 </dependency> 95 <!--spring-web--> 96 <dependency> 97 <groupId>org.springframework</groupId> 98 <artifactId>spring-web</artifactId> 99 <version>${org.springframework.version}</version> 100 </dependency> 101 <!--spring-aop--> 102 <dependency> 103 <groupId>org.springframework</groupId> 104 <artifactId>spring-aop</artifactId> 105 <version>${org.springframework.version}</version> 106 </dependency> 107 <!--spring-webmvc--> 108 <dependency> 109 <groupId>org.springframework</groupId> 110 <artifactId>spring-webmvc</artifactId> 111 <version>${org.springframework.version}</version> 112 </dependency> 113 114 <!-- aspectj --> 115 <dependency> 116 <groupId>org.aspectj</groupId> 117 <artifactId>aspectjrt</artifactId> 118 <version>1.7.4</version> 119 </dependency> 120 <!--aspectj weaver--> 121 <dependency> 122 <groupId>org.aspectj</groupId> 123 <artifactId>aspectjweaver</artifactId> 124 <version>1.7.4</version> 125 </dependency> 126 127 <!-- cglib --> 128 <dependency> 129 <groupId>cglib</groupId> 130 <artifactId>cglib</artifactId> 131 <version>3.1</version> 132 </dependency> 133 134 <!-- mybatis --> 135 <dependency> 136 <groupId>org.mybatis</groupId> 137 <artifactId>mybatis</artifactId> 138 <version>${org.mybatis.version}</version> 139 </dependency> 140 <!--mybatis-spring--> 141 <dependency> 142 <groupId>org.mybatis</groupId> 143 <artifactId>mybatis-spring</artifactId> 144 <version>1.3.0</version> 145 </dependency> 146 147 <!-- jackson-core --> 148 <dependency> 149 <groupId>com.fasterxml.jackson.core</groupId> 150 <artifactId>jackson-core</artifactId> 151 <version>2.9.4</version> 152 </dependency> 153 <!--jackson-databind--> 154 <dependency> 155 <groupId>com.fasterxml.jackson.core</groupId> 156 <artifactId>jackson-databind</artifactId> 157 <version>2.9.4</version> 158 </dependency> 159 <!--jackson-annotations--> 160 <dependency> 161 <groupId>com.fasterxml.jackson.core</groupId> 162 <artifactId>jackson-annotations</artifactId> 163 <version>2.9.4</version> 164 </dependency> 165 166 <!--slf4j-api--> 167 <dependency> 168 <groupId>org.slf4j</groupId> 169 <artifactId>slf4j-api</artifactId> 170 <version>1.7.6</version> 171 </dependency> 172 <!--slf4j-log4j12--> 173 <dependency> 174 <groupId>org.slf4j</groupId> 175 <artifactId>slf4j-log4j12</artifactId> 176 <version>1.7.6</version> 177 </dependency> 178 <!--log4j--> 179 <dependency> 180 <groupId>log4j</groupId> 181 <artifactId>log4j</artifactId> 182 <version>1.2.17</version> 183 </dependency> 184 <!--commons-fileupload--> 185 <dependency> 186 <groupId>commons-fileupload</groupId> 187 <artifactId>commons-fileupload</artifactId> 188 <version>1.3.1</version> 189 </dependency> 190 <!-- jstl --> 191 <dependency> 192 <groupId>jstl</groupId> 193 <artifactId>jstl</artifactId> 194 <version>1.2</version> 195 </dependency> 196 <!-- standard --> 197 <dependency> 198 <groupId>taglibs</groupId> 199 <artifactId>standard</artifactId> 200 <version>1.1.2</version> 201 </dependency> 202 <!--pagehelper--> 203 <dependency> 204 <groupId>com.github.pagehelper</groupId> 205 <artifactId>pagehelper</artifactId> 206 <version>4.1.4</version> 207 </dependency> 208 209 210 </dependencies>
(4) 配置文件的編寫
創建基本的文件夾,並添加文件,如圖
mybatis全局配置文件的編寫,創建sqlMapConfig.xml
<?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="logImpl" value="STDOUT_LOGGING"/> </settings> <typeAliases> <!-- 批量別名定義,掃描整個包下的類,別名為類名(大小寫不敏感) --> <package name="com.qfssc.domain" /> </typeAliases> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"></plugin> </plugins> </configuration>
spring整合mybatis的配置文件編寫,創建application-mybatis.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:aop="http://www.springframework.org/schema/aop" 6 xmlns:tx="http://www.springframework.org/schema/tx" 7 xsi:schemaLocation="http://www.springframework.org/schema/beans 8 http://www.springframework.org/schema/beans/spring-beans.xsd 9 http://www.springframework.org/schema/context 10 http://www.springframework.org/schema/context/spring-context.xsd 11 http://www.springframework.org/schema/aop 12 http://www.springframework.org/schema/aop/spring-aop.xsd 13 http://www.springframework.org/schema/tx 14 http://www.springframework.org/schema/tx/spring-tx.xsd 15 "> 16 17 <!--spring-Mybatis整合--> 18 <!--加載數據庫屬性文件--> 19 <context:property-placeholder location="classpath:db.properties"/> 20 <!--連接池--> 21 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> 22 <property name="driverClassName" value="${jdbc.driver}" /> 23 <!--屬性文件當中的名稱不能和name名稱一樣--> 24 <property name="url" value="${jdbc.url}" /> 25 <property name="username" value="${jdbc.username}" /> 26 <property name="password" value="${jdbc.password}" /> 27 </bean> 28 <!-- 配置事務管理器 --> 29 <bean id="transactionManager" 30 class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 31 <!-- 數據源 --> 32 <property name="dataSource" ref="dataSource" /> 33 </bean> 34 <!-- 開啟注解事務 --> 35 <tx:annotation-driven transaction-manager="transactionManager"/> 36 37 <!-- Mybatis的工廠 --> 38 <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> 39 <property name="dataSource" ref="dataSource"/> 40 <!-- 核心配置文件的位置 --> 41 <property name="configLocation" value="classpath:sqlMapConfig.xml"/> 42 <!--配置mapper映射文件的路徑--> 43 <!--<property name="mapperLocations" value="classpath:com.qfssc.mapper/*Mapper.xml"/>--> 44 </bean> 45 46 <!-- 配置Mapper接口掃描 --> 47 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 48 <!-- 配置Mapper掃描包 --> 49 <property name="basePackage" value="com.qfssc.mapper" /> 50 </bean> 51 52 </beans>
數據庫連接的配置文件db.properties的編寫
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8 jdbc.username=root jdbc.password=1234
springmvc的相關配置,編寫application-mvc.xml:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:mvc="http://www.springframework.org/schema/mvc" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context.xsd 10 http://www.springframework.org/schema/mvc 11 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 12 "> 13 14 <mvc:annotation-driven /> 15 <!--靜態資源處理 --> 16 <mvc:default-servlet-handler/> 17 <!--視圖解析器 --> 18 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 19 <property name="prefix" value="/WEB-INF/views/"/> 20 <property name="suffix" value=".jsp" /> 21 </bean> 22 23 <!--配置請求攔截器,攔截所有請求,用到的時候再進行配置攔截器--> 24 <!--<mvc:interceptors> 25 <mvc:interceptor> 26 <mvc:mapping path="/*"/> 27 <bean class="com.qfssc.web.interceptor.RequestInterceptor"></bean> 28 </mvc:interceptor> 29 </mvc:interceptors>--> 30 31 </beans>
spring核心配置文件applicationContext.xml文件的編寫:
<?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" 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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <!--注解掃描--> <context:component-scan base-package="com.qfssc"/> <!--導入mybatis--> <import resource="classpath:application-mybatis.xml"/> <!--導入springMVC--> <import resource="classpath:application-mvc.xml"/> </beans>
編寫web.xml文件:
<?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" metadata-complete="false" version="3.0"> <absolute-ordering/> <display-name>web</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!--配置前端控制器--> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!--加載spring主配置文件--> <param-value>classpath:applicationContext.xml</param-value> </init-param> <!--項目一啟動就加載框架--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</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> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
log4j的配置文件log4j.properties編寫,
1 # Global logging configuration 2 log4j.rootLogger=ERROR, stdout 3 # MyBatis logging configuration... 4 log4j.logger.com._520it.mybatis=TRACE 5 # Console output... 6 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 7 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 8 log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
三.配置本地tomcat
點擊Add Configuration
按部就班,然后點擊ok
jre,url,和端口號一般默認就行了
依次點擊
選擇第二個選項,這樣支持熱部署,便於開發,點擊ok
再點擊server
再將箭頭指向的位置都選成update classes and resources(支持熱部署)
最后點擊apply,點擊ok
然后就可以看到tom貓了
點擊三角形,啟動tomcat.
如果以上步驟全部正確,瀏覽器直接打開,進入index.jsp,看到Hello World!
四.檢測SpringMVC的可用性
在index.jsp中寫一個表單向服務器發送請求
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <body> <h2>Hello World!</h2> <form action="${pageContext.request.contextPath}/student"> 姓名:<input type="text"><br> <input type="submit" value="提交"> </form> </body> </html>
編寫web層,寫一個StudentController,轉發到success.jsp頁面,只是為了測試一下,不接收參數了。。。
package com.qfssc.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class StudentController { @RequestMapping("/student") public String student(){ return "success"; } }
在views文件夾下創建success.jsp頁面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>success</h1> </body> </html>
在index.jsp頁面里點擊提交
無論是否有參數,都會跳轉到success.jsp頁面
說明我們springmvc生效了(mybatis自行測試,這里不做過多介紹了)
后續:使用maven的mybatis-generator插件生成代碼