IDEA+SpringMVC+Maven环境搭建

来源:互联网 发布:电脑连接不到网络 编辑:程序博客网 时间:2024/06/05 08:07

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中添加

<mirrors>    <mirror>      <id>alimaven</id>      <name>aliyun maven</name>      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>      <mirrorOf>central</mirrorOf>            </mirror></mirrors>
2.在pom.xml中添加

<repositories>    <repository>        <id>aliyunmaven</id>        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>    </repository></repositories>

Step 6:配置pom.xml.在此处添加最小依赖,后续根据需要添加

<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.springmvc.demo</groupId>  <artifactId>SpringMVC</artifactId>  <packaging>war</packaging>  <version>1.0-SNAPSHOT</version>  <name>SpringMVC Maven Webapp</name>  <url>http://maven.apache.org</url>  <!--定义版本信息-->  <properties>    <junit-version>3.8.1</junit-version>    <spring-web-version>4.3.7.RELEASE</spring-web-version>    <spring-webmvc-version>4.3.7.RELEASE</spring-webmvc-version>    <commons-logging-version>1.1.1</commons-logging-version>    <projectName>SpringMVC</projectName>    <servlet-api-version>2.4</servlet-api-version>    <jstl-version>1.2</jstl-version>    <log4j-version>1.2.17</log4j-version>  </properties>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>${junit-version}</version>      <scope>test</scope>    </dependency>    <!--添加 springmvc 依赖的jar-->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-web</artifactId>      <version>${spring-web-version}</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-webmvc</artifactId>      <version>${spring-webmvc-version}</version>    </dependency>    <!-- Servlet -->    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>servlet-api</artifactId>      <version>${servlet-api-version}</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>jstl</artifactId>      <version>${jstl-version}</version>    </dependency>    <!--添加Log4j依赖的jar支持-->    <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>${log4j-version}</version>    </dependency>  </dependencies>  <build>    <finalName>${projectName}</finalName>  </build></project>

Step7:添加Tomcat


Step 8:配置tomcat路径


Step 9:添加为添加tomcat到工程中




step10:添加tomcat支持工程热部署

添加tomcat管理元配置,在tomcat安装目录下的conf/tomcat-users.xml中添加如下信息

<role rolename="manager-gui"/>  <role rolename="manager-script"/>  <role rolename="manager-jmx"/>  <role rolename="manager-status"/>  <role rolename="admin-gui"/>  <role rolename="admin-script"/>  <user username="admin" password="admin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>

配置说明:

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中<servers>添加如下信息

    <server>      <id>tomcat</id>      <username>admin</username><!--tomcat-users.xml中设置的用户名-->      <password>admin</password><!--tomcat-users.xml中设置的密码-->    </server>
在工程的pom.xml文件添加如下信息

<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.springmvc.demo</groupId>  <artifactId>SpringMVC</artifactId>  <packaging>war</packaging>  <version>1.0-SNAPSHOT</version>  <name>SpringMVC Maven Webapp</name>  <url>http://maven.apache.org</url>  <!--定义版本信息-->  <properties>    <junit-version>3.8.1</junit-version>    <spring-web-version>4.3.7.RELEASE</spring-web-version>    <spring-webmvc-version>4.3.7.RELEASE</spring-webmvc-version>    <commons-logging-version>1.1.1</commons-logging-version>    <projectName>SpringMVC</projectName>    <servlet-api-version>2.4</servlet-api-version>    <jstl-version>1.2</jstl-version>    <log4j-version>1.2.17</log4j-version>  </properties>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>${junit-version}</version>      <scope>test</scope>    </dependency>    <!--添加 springmvc 依赖的jar-->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-web</artifactId>      <version>${spring-web-version}</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-webmvc</artifactId>      <version>${spring-webmvc-version}</version>    </dependency>    <!-- Servlet -->    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>servlet-api</artifactId>      <version>${servlet-api-version}</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>jstl</artifactId>      <version>${jstl-version}</version>    </dependency>    <!--添加Log4j依赖的jar支持-->    <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>${log4j-version}</version>    </dependency>  </dependencies>  <build>    <finalName>${projectName}</finalName>    <resources>      <!--表示把java目录下的有关xml文件,properties文件编译/打包的时候放在resource目录下-->      <resource>        <directory>${basedir}/src/main/java</directory>        <includes>          <include>**/*.properties</include>          <include>**/*.xml</include>        </includes>      </resource>      <resource>        <directory>${basedir}/src/main/resources</directory>      </resource>    </resources>    <plugins>      <plugin>        <!--该处配置可参考http://tomcat.apache.org-->        <groupId>org.apache.tomcat.maven</groupId>        <artifactId>tomcat7-maven-plugin</artifactId>        <version>2.2</version>        <configuration>          <!--tomcat 6 http://localhost:8080/manager/html-->          <url>http://localhost:8080/manager/text</url>          <server>tomcat</server> <!-- 此处的名字必须和setting.xml中配置的ID一致 -->          <path>/${projectName}</path>  <!-- 此处的名字是项目发布的工程名 -->          <!--<username>tomcat</username>--><!--settings.xml文件已配置,此处可不配-->          <!--<password>tomcat</password>--><!--settings.xml文件已配置,此处可不配-->        </configuration>      </plugin>    </plugins>  </build></project>

Step12 :配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"         version="3.0">  <!--welcome pages-->  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <!--配置Servlet监听没有特殊用户可以不用配置-->  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <!--配置springmvc DispatcherServlet-->  <servlet>    <servlet-name>SpringMVC</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>/WEB-INF/applicationContext.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>    <async-supported>true</async-supported>  </servlet>  <servlet-mapping>    <servlet-name>SpringMVC</servlet-name>    <url-pattern>*.do</url-pattern>  </servlet-mapping></web-app>
Step13:配置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:mvc="http://www.springframework.org/schema/mvc"       xsi:schemaLocation="http://www.springframework.org/schema/beans                        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd                         http://www.springframework.org/schema/context                        http://www.springframework.org/schema/context/spring-context-3.2.xsd                        http://www.springframework.org/schema/mvc                        http://www.springframework.org/schema/mvc/spring-mvc.xsd">    <!--启用spring的一些annotation -->    <context:annotation-config/>    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->    <context:component-scan base-package="com.mark.ssm.controller">    </context:component-scan>    <!--HandlerMapping 无需配置,springmvc可以默认启动-->    <!--静态资源映射-->    <!--本项目把静态资源放在了WEB-INF的statics目录下,资源映射如下-->    <mvc:resources mapping="/css/**" location="/statics/css/"/>    <mvc:resources mapping="/js/**" location="/statics/js/"/>    <mvc:resources mapping="/image/**" location="/statics/image/"/>    <!-- 配置注解驱动 可以将request参数与绑定到controller参数上 -->    <mvc:annotation-driven/>    <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀(如果最后一个还是表示文件夹,则最后的斜杠不要漏了) 使用JSP-->    <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- -->    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>        <property name="prefix" value="/WEB-INF/views/"/><!--设置JSP文件的目录位置-->        <property name="suffix" value=".jsp"/>    </bean></beans>
Step 14:配置log4j.properties

#log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILElog4j.rootLogger=DEBUG,CONSOLE,FILElog4j.addivity.org.apache=truelog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Threshold=INFO,ERROR、WARN、INFO、DEBUGlog4j.appender.CONSOLE.Target=System.outlog4j.appender.CONSOLE.Encoding=GBKlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.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%nlog4j.appender.A1=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A1.File=/Users/mark_lic/apps/tomcat/apache-tomcat-7.0.77/logs/SpringMVClog4j.appender.A1.Encoding=GBKlog4j.appender.A1.Threshold=INFO,ERROR、WARN、INFO、DEBUGlog4j.appender.A1.DatePattern='.'yyyy-MM-ddlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%nlog4j.appender.FILE=org.apache.log4j.FileAppenderlog4j.appender.FILE.File=/Users/mark_lic/apps/tomcat/apache-tomcat-7.0.77/logs/SpringMVC/file.loglog4j.appender.FILE.Append=falselog4j.appender.FILE.Encoding=GBKlog4j.appender.FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%nlog4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppenderlog4j.appender.ROLLING_FILE.Threshold=INFO,ERROR、WARN、INFO、DEBUGlog4j.appender.ROLLING_FILE.File=rolling.loglog4j.appender.ROLLING_FILE.Append=truelog4j.appender.CONSOLE_FILE.Encoding=GBKlog4j.appender.ROLLING_FILE.MaxFileSize=10KBlog4j.appender.ROLLING_FILE.MaxBackupIndex=1log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%nlog4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.netlog4j.appender.im.username = usernamelog4j.appender.im.password = passwordlog4j.appender.im.recipient = corlin@cybercorlin.netlog4j.appender.im.layout=org.apache.log4j.PatternLayoutlog4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%nlog4j.appender.SOCKET=org.apache.log4j.RollingFileAppenderlog4j.appender.SOCKET.RemoteHost=localhostlog4j.appender.SOCKET.Port=5001log4j.appender.SOCKET.LocationInfo=truelog4j.appender.SOCKET.layout=org.apache.log4j.PatternLayoutlog4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%nlog4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appenderlog4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000log4j.appender.MAIL=org.apache.log4j.net.SMTPAppenderlog4j.appender.MAIL.Threshold=INFO,ERROR、WARN、INFO、DEBUGlog4j.appender.MAIL.BufferSize=10log4j.appender.MAIL.From=web@www.wuset.comlog4j.appender.MAIL.SMTPHost=www.wusetu.comlog4j.appender.MAIL.Subject=Log4J Messagelog4j.appender.MAIL.To=web@www.wusetu.comlog4j.appender.MAIL.layout=org.apache.log4j.PatternLayoutlog4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n# File 输出 一天一个文件,输出路径可以定制,一般在根路径下log4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=log.txtlog4j.appender.R.MaxFileSize=500KBlog4j.appender.R.MaxBackupIndex=10log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.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 + "/";%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>无标题文档</title>    <script src="<%=basePath%>statics/js/jquery-3.2.1.min.js" type="text/javascript"></script></head><body><form action="/hello.do" method="get">    <input type="submit" value="Aaaa"/></form></body></html>
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" %><html><head>    <title>Title</title></head><body>    Test OK!</body></html>

启动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


原创粉丝点击