后台架构实战——Spring框架搭建
2016-09-26 10:22
183 查看
本文为java后台实战的开篇——Spring框架搭建,项目采用maven管理,废话不多说直接进入正题。
首先开发eclipse新建maven工程【File->New->Others...->Maven->Maven Project】
点击Next
直接点击Next
选择Artifact Id为maven-archetype-webapp然后点击Next
填写Group Id,Artifact Id后点击Finish,这样一个基础的Maven管理的webapp就创建成功了
Maven默认采用的是J2SE-1.5,我本地安装的是1.8,为了却换到1.8可以通过以下步骤完成:
右击项目选择Properties
选择Project Facets,右侧可以看到Java选项,把相应的版本改为1.8
点击【Apply->Ok】完成设置
接下来在pom.xml配置Sping依赖包(Spring框架文档http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/)
我们先要导入Spring的核心模块
spring-core, spring-beans, spring-context, spring-context-support
然后导入Spring web模块
spring-web, spring-webmvc
pom.xml最后的文件如下
配置web.xml
在WEB-INF下面添加spring-context.xml文件
新建IndexController
IndexController.java内容如下
为了能让工程跑起来,我们安装一个jetty的maven插件,在pom.xml添加如下代码
最终完整的pom.xml如下
右击工程【Run As->Maven build】
Goals:install jetty:run
点击【Apply->Run】这样基础的spring框架就跑起来了
在浏览器中输入localhost:8080/index,会发现以下错误
这个错误很明显说我们没有配置相应返回类型的converter,因为我们需要反悔json数据所以我们直接在项目中引入jackson,在pom.xml中添加如下代码
完整的pom.xml如下
右击项目【Run As->Maven build】重新运行,在浏览器中输入localhost:8080\index
这样一个spring web基础工程就搭建完成了
工程完整地址:https://github.com/imchenglibin/spring-web-tutorial
首先开发eclipse新建maven工程【File->New->Others...->Maven->Maven Project】
点击Next
直接点击Next
选择Artifact Id为maven-archetype-webapp然后点击Next
填写Group Id,Artifact Id后点击Finish,这样一个基础的Maven管理的webapp就创建成功了
Maven默认采用的是J2SE-1.5,我本地安装的是1.8,为了却换到1.8可以通过以下步骤完成:
右击项目选择Properties
选择Project Facets,右侧可以看到Java选项,把相应的版本改为1.8
点击【Apply->Ok】完成设置
接下来在pom.xml配置Sping依赖包(Spring框架文档http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/)
我们先要导入Spring的核心模块
spring-core, spring-beans, spring-context, spring-context-support
然后导入Spring web模块
spring-web, spring-webmvc
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.xt</groupId> <artifactId>tutorial</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>tutorial Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <build> <finalName>tutorial</finalName> </build> <properties> <spring.version>4.3.2.RELEASE</spring.version> </properties> </project>
配置web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-context.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value></param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
在WEB-INF下面添加spring-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:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.or bef8 g/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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.xt.tutorial" /> <mvc:annotation-driven enable-matrix-variables="true" /> </beans>
新建IndexController
IndexController.java内容如下
package com.xt.tutorial.v1.controllers; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/index") public class IndexController { <span style="white-space:pre"> </span>@GetMapping <span style="white-space:pre"> </span>@ResponseBody <span style="white-space:pre"> </span>public Map<String, Object> index() { <span style="white-space:pre"> </span>Map<String, Object> response = new HashMap<>(); <span style="white-space:pre"> </span>response.put("code", 200); <span style="white-space:pre"> </span>response.put("message", "Ok"); <span style="white-space:pre"> </span>response.put("data", new HashMap<String, String>()); <span style="white-space:pre"> </span>return response; <span style="white-space:pre"> </span>} }
为了能让工程跑起来,我们安装一个jetty的maven插件,在pom.xml添加如下代码
<build> <finalName>tutorial</finalName> <!-- jetty:run --> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.16.v20140903</version> </plugin> </plugins> </build>
最终完整的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.xt</groupId>
<artifactId>tutorial</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>tutorial Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<build> <finalName>tutorial</finalName> <!-- jetty:run --> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.16.v20140903</version> </plugin> </plugins> </build>
<properties>
<spring.version>4.3.2.RELEASE</spring.version>
</properties>
</project>
右击工程【Run As->Maven build】
Goals:install jetty:run
点击【Apply->Run】这样基础的spring框架就跑起来了
在浏览器中输入localhost:8080/index,会发现以下错误
这个错误很明显说我们没有配置相应返回类型的converter,因为我们需要反悔json数据所以我们直接在项目中引入jackson,在pom.xml中添加如下代码
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency>
完整的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.xt</groupId>
<artifactId>tutorial</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>tutorial Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency>
</dependencies>
<build> <finalName>tutorial</finalName> <!-- jetty:run --> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.16.v20140903</version> </plugin> </plugins> </build>
<properties>
<spring.version>4.3.2.RELEASE</spring.version>
<jackson.version>2.8.3</jackson.version>
</properties>
</project>
右击项目【Run As->Maven build】重新运行,在浏览器中输入localhost:8080\index
这样一个spring web基础工程就搭建完成了
工程完整地址:https://github.com/imchenglibin/spring-web-tutorial
相关文章推荐
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(一)
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(二)
- [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店
- 【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架
- study-19: LAMP企业网站集群架构搭建(自己实战)
- Spring Boot 和 Spring Cloud 实战 - 从无到有搭建信息管理系统(系统总体架构) -- TerryHe 博客园
- google官方架构MVP解析与实战-(从零开始搭建android框架系列(3))
- Jquery EasyUi如何搭建后台的实战篇
- 架构师入门:搭建双注册中心的高可用Eureka架构(基于项目实战)
- 【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架
- 【SSH网上商城项目实战03】使用EasyUI搭建后台页面框架
- 安卓实战之如何快速搭建app架构
- google官方架构MVP解析与实战-(从零开始搭建android框架系列(3))
- [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店
- 安卓实战之如何快速搭建app架构
- QiYuAdmin-架构搭建一(SpringBoot实战)
- 用 Express 4.x 搭建项目 —— 后台架构
- 安卓实战之如何快速搭建app架构
- 大数据Spark “蘑菇云”行动Hadoop实战速成之路第29课:Hadoop架构详解及Hadoop集群搭建、配置和测试实战
- 架构实战篇(三)-Spring Boot架构搭建RESTful API案例