Intellij IDEA 2017 创建Spring Maven项目

来源:互联网 发布:淘宝网丝巾韩杰 编辑:程序博客网 时间:2024/06/05 11:25

例子使用的IDEA版本是2017.1,网上可以找到破解码。

1.新建Maven项目


新建Maven项目,如图选择。
如图选择

接下来的填写GroupId、AtifactID,按照自己想法起个名字就好。
这里写图片描述

选择Maven仓库,按照默认的,直接点next。
这里写图片描述

填写项目名,起个名儿吧。
这里写图片描述
点击Finish,就创建了一个Maven项目。

2.添加Spring依赖


打开pom.xml文件。

2.1.添加版本号配置

<properties>    <spring.version>4.3.0.RELEASE</spring.version>    <javax.servlet.version>2.5</javax.servlet.version></properties>

2.2.dependencies添加如下依赖

<dependencies>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-web</artifactId>      <version>${spring.version}</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-beans</artifactId>      <version>${spring.version}</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-webmvc</artifactId>      <version>${spring.version}</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context</artifactId>      <version>${spring.version}</version>      <type>jar</type>    </dependency>    <dependency>      <artifactId>spring-core</artifactId>      <groupId>org.springframework</groupId>      <type>jar</type>      <version>${spring.version}</version>    </dependency>    <dependency>      <artifactId>spring-jdbc</artifactId>      <groupId>org.springframework</groupId>      <type>jar</type>      <version>${spring.version}</version>    </dependency>    <dependency>      <artifactId>spring-tx</artifactId>      <groupId>org.springframework</groupId>      <type>jar</type>      <version>${spring.version}</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-orm</artifactId>      <version>${spring.version}</version>    </dependency>    <!--jackson dependencies jar-->    <dependency>      <groupId>com.fasterxml.jackson.core</groupId>      <artifactId>jackson-core</artifactId>      <version>2.8.5</version>    </dependency>    <dependency>      <groupId>com.fasterxml.jackson.core</groupId>      <artifactId>jackson-databind</artifactId>      <version>2.8.5</version>    </dependency>    <!--servlet dependencies jar-->    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>servlet-api</artifactId>      <version>${javax.servlet.version}</version>      <scope>provided</scope>    </dependency>    <!-- log4j -->    <dependency>      <groupId>org.apache.logging.log4j</groupId>      <artifactId>log4j-api</artifactId>      <version>2.6.2</version>    </dependency>    <dependency>      <groupId>org.apache.logging.log4j</groupId>      <artifactId>log4j-core</artifactId>      <version>2.6.2</version>    </dependency>    <!-- JsonObject -->    <dependency>      <groupId>net.sf.json-lib</groupId>      <artifactId>json-lib</artifactId>      <version>2.3</version>      <classifier>jdk15</classifier>    </dependency>    <dependency>      <groupId>org.slf4j</groupId>      <artifactId>slf4j-log4j12</artifactId>      <version>1.6.6</version>    </dependency>    <!-- JSP and JSTL SUPPORT -->    <dependency>      <groupId>javax.servlet</groupId>      <artifactId>jstl</artifactId>      <version>1.2</version>    </dependency>    <!-- commons-codec -->    <dependency>      <groupId>commons-codec</groupId>      <artifactId>commons-codec</artifactId>      <version>1.4</version>    </dependency>  </dependencies>

3.配置ApplicationContext-context.xml


在resources目录下,创建spring目录,加入ApplicationContext-context.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:task="http://www.springframework.org/schema/task"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><context:component-scan base-package="your.package">        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan></beans>

其中,base-package=”your.package”根据自己的项目包名写,比如com.example。

4.配置springmvc-servlet.xml和web.xml


在WEB-INF目录下,新建springmvc-servlet.xml:
把package=”com.example.controller”替换成你的controller路径即可。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:mvc="http://www.springframework.org/schema/mvc"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd                           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">    <!-- 配置注解驱动 -->    <mvc:annotation-driven/>    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->    <context:component-scan base-package="com.example.controller"/>    <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 使用JSP-->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/" />        <property name="suffix" value=".jsp" />    </bean></beans>

然后修改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" metadata-complete="true">    <display-name>tc-usermodel</display-name>    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:/spring/ApplicationContext-context.xml</param-value>    </context-param>    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <filter>        <filter-name>encodingFilter</filter-name>        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>UTF-8</param-value>        </init-param>        <init-param>            <param-name>forceEncoding</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <filter>        <filter-name>HiddenHttpMethodFilter</filter-name>        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>encodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <filter-mapping>        <filter-name>HiddenHttpMethodFilter</filter-name>        <servlet-name>springmvc</servlet-name>    </filter-mapping>    <!-- Handles all requests into the application -->    <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/springmvc-servlet.xml            </param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

至此,新建Spring Maven项目就大功告成了。下面是代码写法。

5.项目目录结构


这是一个简洁的目录结构。
这里写图片描述

6.一个Spring http接口的最简洁例子


控制器Controller写法

@Controller@RequestMapping(value = "/test")public class MainController {    //自动实例化    @Autowired    private UserModelService userModelService;    //这个例子返回一个接口,因为有@ResponseBody注解    @RequestMapping(value = "/model",method = RequestMethod.GET,produces = "application/json;charset=UTF-8")    @ResponseBody    public UserModel getUserModel(UserModelParams params) {        UserModel userModel = userModelService.getUserModel(params);        return userModel;    }    //这个例子跳转到 hello.jsp页面,因为没有@ResponseBody注解    @RequestMapping(value = "/jspview",method = RequestMethod.GET)    public String getUserjsp(UserModelParams params) {        return "hello";    }}

java接口UserModelService:

public interface UserModelService {    String getUserModel(UserModelParams params);    JSONArray getAllUserModel();}

具体业务写在UserModelServiceImpl ,注意要继承UserModelService 接口。

@Service("UserModelServiceImpl")public class UserModelServiceImpl implements UserModelService {    @Override    public JSONArray getAllUserModel(){                         JsonArray jsonArray = new JsonArray();        jsonArray.add("name","jack");        jsonArray.add("age",123);        return jsonArray;    }}

7.启动服务


服务器我推荐使用jetty插件,直接在maven中配置就好,非常方便。

<build>    <finalName>springtest</finalName>    <plugins>       <!--maven compiler plugin -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <configuration>          <source>1.7</source>          <target>1.7</target>        </configuration>      </plugin>    <!--jetty plugin -->      <plugin>        <groupId>org.eclipse.jetty</groupId>        <artifactId>jetty-maven-plugin</artifactId>        <version>9.1.0.v20131115</version>      </plugin>    </plugins>  </build>

在IDEA中最右侧,双击jetty:run启动服务
这里写图片描述

然后在浏览器中输入:http://localhost:8080/test/model ,得到响应。
这里写图片描述

0 0