step 1:Create New Project->Next也可以采用File->New->Project
step 2:输入项目GroupId以及ArtifactId,其中GroupId是项目组唯一标示实际对应java的包结构。ArtifactId项目名称唯一标示,对应项目的名称.Version采用默认配置
Step 3:配置maven local环境以及local 仓库,可以给maven添加对应的属性
Step 4:确认项目名称以及项目位置,确认OK,点击Finish
Step 5:项目视图以及IDEA对maven的支持(通过IDEA操作maven)
截止目前项目的基本结构已经OK。现在需要配置pom.xml,添加工程依赖的spring jar
介绍一下常用的maven 仓库
1.https://mvnrepository.com推荐使用
2.https://repository.sonatype.org/index.html#welcome推荐使用
3.http://repo1.maven.org/maven2/
4.http://repository.jboss.com/maven2/
5.http://repository.sonatype.org/content/groups/public/
6.http://mirrors.ibiblio.org/pub/mirrors/maven2/org/acegisecurity/
7.http://central.maven.org/maven2/
由于网速的原因,我们可以使用阿里云镜像(http://maven.aliyun.com/nexus/#welcome)下载依赖资源.
配置方式有以下两种
1.在local maven seeting.xml中添加
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
2.在pom.xml中添加
aliyunmaven
http://maven.aliyun.com/nexus/content/groups/public/
Step 6:配置pom.xml.在此处添加最小依赖,后续根据需要添加
4.0.0
com.springmvc.demo
SpringMVC
war
1.0-SNAPSHOT
SpringMVC Maven Webapp
http://maven.apache.org
3.8.1
4.3.7.RELEASE
4.3.7.RELEASE
1.1.1
SpringMVC
2.4
1.2
1.2.17
junit
junit
${junit-version}
test
org.springframework
spring-web
${spring-web-version}
org.springframework
spring-webmvc
${spring-webmvc-version}
javax.servlet
servlet-api
${servlet-api-version}
provided
javax.servlet
jstl
${jstl-version}
log4j
log4j
${log4j-version}
${projectName}
Step7:添加Tomcat
Step 8:配置tomcat路径
Step 9:添加为添加tomcat到工程中
step10:添加tomcat支持工程热部署
添加tomcat管理元配置,在tomcat安装目录下的conf/tomcat-users.xml中添加如下信息
配置说明:
manager-gui:允许访问html接口即URL路径为/manager/html
manager-script:允许访问纯文本接口即URL路径为/manager/text
manager-jmx:允许访问代理接口即URL路径为/manager/jmxproxy
manager-jmx:允许访问Tomcat只读状态页面即URL路径为/manager/status
配置成功后访问http://localhost:8080/manager/html 输入用户名/密码显示如下
Step 11:添加权限是maven能够访问tomcat,修改在maven安装目录下的conf/settings.xml中
tomcat
admin
admin
在工程的pom.xml文件添加如下信息
4.0.0
com.springmvc.demo
SpringMVC
war
1.0-SNAPSHOT
SpringMVC Maven Webapp
http://maven.apache.org
3.8.1
4.3.7.RELEASE
4.3.7.RELEASE
1.1.1
SpringMVC
2.4
1.2
1.2.17
junit
junit
${junit-version}
test
org.springframework
spring-web
${spring-web-version}
org.springframework
spring-webmvc
${spring-webmvc-version}
javax.servlet
servlet-api
${servlet-api-version}
provided
javax.servlet
jstl
${jstl-version}
log4j
log4j
${log4j-version}
${projectName}
${basedir}/src/main/java
**/*.properties
**/*.xml
${basedir}/src/main/resources
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
http://localhost:8080/manager/text
tomcat
/${projectName}
Step12 :配置web.xml
index.jsp
org.springframework.web.context.ContextLoaderListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/applicationContext.xml
1
true
SpringMVC
*.do
Step13:配置applicationcontext.xml
Step 14:配置log4j.properties
#log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE
log4j.rootLogger=DEBUG,CONSOLE,FILE
log4j.addivity.org.apache=true
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO,ERROR、WARN、INFO、DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.DATABASE.URL=jdbc:oracle:thin:@90.0.12.20:1521:ORCL
#log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
#log4j.appender.DATABASE.user=Nation
#log4j.appender.DATABASE.password=1
#log4j.appender.DATABASE.Threshold=INFO,ERROR、WARN、INFO、DEBUG
#log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
#log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
#log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=/Users/mark_lic/apps/tomcat/apache-tomcat-7.0.77/logs/SpringMVC
log4j.appender.A1.Encoding=GBK
log4j.appender.A1.Threshold=INFO,ERROR、WARN、INFO、DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=/Users/mark_lic/apps/tomcat/apache-tomcat-7.0.77/logs/SpringMVC/file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=GBK
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=INFO,ERROR、WARN、INFO、DEBUG
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.CONSOLE_FILE.Encoding=GBK
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = corlin@cybercorlin.net
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=INFO,ERROR、WARN、INFO、DEBUG
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=web@www.wuset.com
log4j.appender.MAIL.SMTPHost=www.wusetu.com
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=web@www.wusetu.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# File 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
Step 15:编写controller
package com.mark.ssm.controller;
import org.apache.commons.logging.Log;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.apache.commons.logging.LogFactory;
@Controller
@RequestMapping("/")
public class HelloController {
private final static Log logger = LogFactory.getLog(HelloController.class);
@RequestMapping(value = "hello.do")
public String handerIndex(){
logger.debug("Hello SpringMVC");
return "hello";
}
}
step 16:编写测试页面
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" +
request.getServerName() + ":" +
request.getServerPort() +
path + "/";
%>
无标题文档
hello.jsp
<%--
Created by IntelliJ IDEA.
User: mark_lic
Date: 2017/8/30
Time: 上午12:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
Test OK!
启动tomcat查看输出log发现如下信息
...mvc.method.annotation.RequestMappingHandlerMapping request handler methods found on class com.mark.ssm.controller.HelloController: {public java.lang.String com.mark.ssm.controller.HelloController.handerIndex()={[/hello.do]}}
...mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/hello.do]}" onto public java.lang.String com.mark.ssm.controller.HelloController.handerIndex()
在浏览器输入项目地址点击按钮页面跳转,控制台打印如下信息
DEBUG com.mark.ssm.controller.HelloController - Hello SpringMVC