IDEA上用Maven创建的SpringMvc项目
来源:互联网 发布:ubuntu如何升级内核 编辑:程序博客网 时间:2024/06/06 00:49
最近迷上了java新的开发工具IDEA,由于之前用的都是eclipse,在IDEA上还没有自己建过一个项目,今天就来试一试;顺便记录下来,防止以后遗忘:
(IDEA确实比eclipse好用,具体的我也不安利给大家了谁用谁知道;就是感觉idea对svn的支持不是很好,没有eclipse那么完善。。。)
我用的idea版本是
java版本:1.8
maven版本:3.0.5
首先让我们来新建一个Maven项目:File–>New–>Project–>Maven
填写groupId与artifactId然后点击next
在这里填写maven配置;我这里本地已经配置好了一个E:/apache-maven-3.0.5的本地maven;加入你们本地也已经有配置好的maven的话就可以重新指定maven的配置文件–>Next
然后输入项目的名称;这里的项目名称最好与之前的ArtifactId保持一致
刚新建的web项目目录是这样的:
项目创建完成后,src-main下只有resource与webapp目录,此时我们在main下 建立java目录(这里用来存放以后所有的java类),也就是说这个java目录是除了配置文件之外的所有代码的根目录。
之后需要在idea中需要对java目录进行标注,否则是无法在该目录下创建新的Package包和java类等文件的。
为了方便管理,再建立一些文件夹,建完之后的目录:
标注界面:
- Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。 - Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比较彻底的。 - Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。 - Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。 - Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
配置Maven的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.firstIdea</groupId> <artifactId>springmvc</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>springmvc</name> <url>http://maven.apache.org</url> <!--项目依赖 --> <dependencies> <!--日志包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency> <!--j2ee相关包 servlet、jsp、jstl--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--mysql驱动包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> <!--spring相关包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.1.RELEASE</version> </dependency> <!--其他需要的包--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> </dependencies> <build> <finalName>maven-springmvc</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> <!--servlet容器 jetty插件--> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.3.10.v20160621</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <httpConnector> <port>8083</port> </httpConnector> <webApp> <contextPath>/</contextPath> </webApp> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <!-- put your configurations here --> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build></project>
配置web.xml
maven默认生成的web.xml版本是2.3的,所以有些配置节点idea会识别不出来,因此我们重新添加一个3.0的。完整配置如下—可以直接用
<?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> <!--配置springmvc DispatcherServlet--> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!--Sources标注的文件夹下需要新建一个spring文件夹--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.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>/</url-pattern> </servlet-mapping></web-app>
到这里会发现,web.xml中classpath:spring/spring-mvc.xml会报错,这里我们就要新建spring文件夹并配置spring-mvc.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.firstIdea.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <!--HandlerMapping 无需配置,springmvc可以默认启动--> <!--静态资源映射--> <!--本项目把静态资源放在了WEB-INF的statics目录下,资源映射如下--> <mvc:resources mapping="/css/**" location="/WEB-INF/statics/css/"/> <mvc:resources mapping="/js/**" location="/WEB-INF/statics/js/"/> <mvc:resources mapping="/image/**" location="/WEB-INF/statics/image/"/> <!--但是项目部署到linux下发现WEB-INF的静态资源会出现无法解析的情况,但是本地tomcat访问正常,因此建议还是直接把静态资源放在webapp的statics下,映射配置如下--> <!--<mvc:resources mapping="/css/**" location="/statics/css/"/>--> <!--<mvc:resources mapping="/js/**" location="/statics/js/"/>--> <!--<mvc:resources mapping="/image/**" location="/statics/images/"/>--> <!-- 配置注解驱动 可以将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> <!-- springmvc文件上传需要配置的节点--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="20971500"/> <property name="defaultEncoding" value="UTF-8"/> <property name="resolveLazily" value="true"/> </bean></beans>
配置log4j日志,并新建一个controller;用jetty运行测试一下:
hellocontroller:
package com.firstIdea.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * Created by Administrator on 2017-08-01. */@Controller@RequestMapping("/hello")public class helloController { private static final Logger logger = LoggerFactory.getLogger(helloController.class); @RequestMapping("/index") public String index()throws Exception{ logger.info("hello my first idea springmvc!"); return "index"; }}
log4j配置在resource下创建log4j.xml配置文件:
#配置根Logger 后面是若干个Appenderlog4j.rootLogger=DEBUG,A1,R#log4j.rootLogger=INFO,A1,R# ConsoleAppender 输出log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %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
接下来就是配置jetty运行项目:
运行成功—-
- IDEA上用Maven创建的SpringMvc项目
- IDEA下用Maven创建SpringMVC项目
- 用IDEA 创建MAVEN 管理的 spring +springmvc + shiro项目
- idea创建maven springMVC项目
- IntelliJ IDEA上创建Maven Spring+SpringMVC+Hibernate项目
- Intellij Idea创建基于Maven的SpringMVC+MyBatis项目
- Intellij IDEA 创建 Maven SpringMVC 项目的方法
- IDEA创建maven管理的springMVC+spring+Mybatis项目
- Intellij Idea 下用maven创建SpringMVC项目问题汇总
- IDEA用maven创建springMVC项目和配置
- IntelliJ IDEA创建SpringMVC+Maven项目
- idea创建maven+springmvc+mybatis+jetty项目
- 使用IDEA创建maven Mybatis-SpringMvc项目
- IDEA下创建一个Maven + SpringMVC项目
- IntelliJ IDEA 创建maven springmvc 简单项目
- idea创建springboot2+maven+springmvc项目
- idea 上maven项目的创建以及部署到tomcat
- 用Maven创建SpringMVC项目
- C
- ubutu 制作本地源
- 【Selenium】3操作浏览器窗口
- 移动端页面布局:百分比布局、rem布局
- Nginx--官网中文翻译(中英文对比)--7-配置文件中计量单位Configuration file measurement units
- IDEA上用Maven创建的SpringMvc项目
- 今天开始写博客
- pip安装超时问题解决
- 10条SQL技巧
- Pick-up sticks
- 自己配置Samba服务器步骤,及碰到的一些问题
- 开灯问题
- 1960共用体练习
- lua教程八----不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!