【创建一个Maven项目】
1. File-New-Project-Maven Project
2. 选择创建一个简单的项目
3. 填写项目信息,打包为WAR
4. 修改pom.xml配置文件,添加相关依赖
<properties> <java.version>1.8</java.version> <spring.version>4.1.5.RELEASE</spring.version> </properties> <dependencies> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> </dependencies>
5. 创建两个包
6. 在com.springapp.config包下创建AppConfig配置类
@Configuration @EnableWebMvc @ComponentScan (basePackages = {"com.springapp.controller"}) public class AppConfig { }
点击按钮source-organize imports会自动导入所需要的jar包
7. 在config包下创建ServletInitializer配置类,并继承AbstractAnnotationConfigDispatcherServletInitializer,实现相关方法
public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class<?>[] getRootConfigClasses() { // TODO Auto-generated method stub return new Class<?>[0]; } @Override protected Class<?>[] getServletConfigClasses() { // TODO Auto-generated method stub return new Class<?>[]{AppConfig.class}; } @Override protected String[] getServletMappings() { // TODO Auto-generated method stub return new String[]{"/"}; } }
8. 在controller包下创建一个控制器类HelloController
package com.springapp.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @RequestMapping("/hello") @ResponseBody public String hi() { return "Hello from Maven project!"; } }
9. 在pom.xml文件中添加打包配置
<build> <finalName>springwebapp</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.5</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
10. 右键项目,run-run on server