版本
系统:MAC系统
java:8.x
maven:3.x
tomcat:tomcat7-maven-plugin
spring-web:5.0.0
风.fox
JDK 设置
安装JAVA略
设置JAVA环境变量
http://blog.csdn.net/fenglailea/article/details/69501375
Maven 设置
MAC maven 安装和配置 http://blog.csdn.net/fenglailea/article/details/69500318
Maven 更改国内镜像设置【推荐】http://blog.csdn.net/fenglailea/article/details/53304479#t6
IntelliJ IDEA Maven配置 MAC系统 http://blog.csdn.net/fenglailea/article/details/78272769
新建 IDEA Maven 项目
打开IDEA,点击Create New Project
,在弹出的界面中选择Maven
(左侧菜单列表),右侧选择好Project SDK
版本,这里的版本是1.8,如果你没有设置那么可以点击New
按钮重新设置JAVA JDK目录。
选中Create from archetype
,
在下面的列表中选中org.apache.maven.archetypes:maven-archetype-webapp
,点击Next
按钮 (如图),
在下一页面中输入,
GroupId: 输入组织id,比如 foxiswho.com
,此处不能是中文
ArtifactId:输入项目名称,比如 springMvc
Version: 输入版本号,可以直接回车,默认是1.0-SNAPSHOT
点击Next
按钮, 本页是设置Maven,已经设置好了,直接Next
,
本页设置 项目名称和项目路径,选择你要保存的位置,点击Finish
.
建立 文件夹
main
下建立java
和test
文件夹
test
文件夹下建立java
文件夹
在webapp/WEB-INF
下建立statics
和views
文件夹
在statics
文件夹下建立css
,js
,images
文件夹
IDEA 项目 目录配置
菜单
File
->Project Structure
弹出的对画框中,左侧Modules
菜单
选中main
下的java
点击Sources
设置
选中test
下的java
点击Tests
设置
最后点击Apply
和OK
按钮
- 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 项目我们只要会设置 src 即可。
(引用自http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/eclipse-java-web-project-introduce.html)
建立包的路径
选中main
下的java
文件夹,右击弹出菜单New
->Package
,输入
com.foxwho.controller
再次选中 java
文件夹,右击弹出菜单New
->Package
,输入
com.foxwho.dao
再次选中 java
文件夹,右击弹出菜单New
->Package
,输入
com.foxwho.service
再次选中 java
文件夹,右击弹出菜单New
->Package
,输入
com.foxwho.pojo
建立文件
选中webapp/WEB-INF/views
,右击弹出菜单New
->JSP/JSPX
,输入index
,
然后在<body>
后面随便输入几个字符,例如foxwho.com
Maven pom.xml配置
增加 tomcat7-maven-plugin
在 pom.xml
中 <build>
内加入 如下,如果已经有<plugins>
了,那么只加入<plugin>
部分
<plugins>
<plugin>
<!-- 配置tomcat 插件 -->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
tomcat7-maven-plugin 2.2 版本兼容 JAVA8 ,所以可以直接使用
增加 日志包 slf4j-log4j12
http://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12
在 pom.xml
中 <dependencies>
内加入 如下
<!--日志包-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
增加 j2ee相关包
http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api
http://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api
在 pom.xml
中 <dependencies>
内加入 如下
<!--j2ee相关包 servlet、jsp、jstl-->
<!--这里没有jetty-maven-plugin这个插件,所以要注释掉 servlet、jsp-->
<!--<dependency>-->
<!--<groupId>javax.servlet</groupId>-->
<!--<artifactId>javax.servlet-api</artifactId>-->
<!--<version>4.0.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>
其他包
在 pom.xml
中 <dependencies>
内加入 如下
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!--spring相关包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
<!--其他需要的包-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
编译配置
在 pom.xml
中 <build>
内加入 如下,如果已经有<resources>
了,那么只加入<resource>
部分
<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>
pom.xml
保存后,idea会自动下载相应的包,如没有自动下载的话,可以点击内容区右侧Maven Projects
选项卡中的重载
按钮进行项目的重新载入
配置web.xml
maven默认生成的web.xml
版本是2.3的,这里要配置成最新的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--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>
在 resources
目录下建立文件夹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.foxwho.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="/images/**" location="/WEB-INF/statics/images/"/>
<!--但是项目部署到linux下发现WEB-INF的静态资源会出现无法解析的情况,但是本地tomcat访问正常,因此建议还是直接把静态资源放在webapp的statics下,映射配置如下-->
<!--<mvc:resources mapping="/css/**" location="/statics/css/"/>-->
<!--<mvc:resources mapping="/js/**" location="/statics/js/"/>-->
<!--<mvc:resources mapping="/images/**" 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>
日志配置
在 resources
目录下,新建立log4j.properties
文件,内容如下
#配置根Logger 后面是若干个Appender
log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
# ConsoleAppender 输出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %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
控制器建立
在com.foxwho
中选中controrller
,右键 New
->Java Class
,输入HomeController
,点击OK
IDEA会自动创建一个HomeController
类,内容如下
package com.foxwho.controller;
public class HomeController {
}
在public class HomeController
上一行输入@Controller
注解,在输入过程中会有浮层提示,选则Controller (org.springframework.stereotype)
这个,一般默认第一个就是,直接回车,IDEA自动引入该包.
加入路由(RequestMapping),加入日志,设置一个action ,最后该类如下
package com.foxwho.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/home")
public class HomeController {
//添加一个日志器
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
//映射一个action
@RequestMapping("/index")
public String index(){
//输出日志文件
logger.info("the first jsp pages");
//返回一个index.jsp这个视图
return "index";
}
}
配置 tomcat7-maven-plugin
菜单
Run
->Edit Configurations,
点击左侧+号,选择Maven
按照如下案例配置,路径不需要操作,直接修改 Command Line
部分为tomcat7:run
Apply
和OK
按钮
运行项目
点击 运行
图标或者 小虫子
图标开始运行项目,最后在[INFO] Running war on
位置点击
后面的URL地址或者复制
URL地址到浏览器内打开
http://localhost:8080/springMvc/
http://localhost:8080/springMvc/home/index 这个就是控制器内的你建立的哪个index.jsp文件
目录说明
最好根据 阿里巴巴Java开发手册(终极版) 和 阿里巴巴Java开发规约插件来
https://github.com/alibaba/p3c
controller:控制器
dao:数据访问
service:相对具体的业务逻辑层
pojo:实体类
webapp/WEB-INF/views:视图