SpringMVC开发移动端接口(返回Json数据)
来源:互联网 发布:对p2p网络信贷的看法 编辑:程序博客网 时间:2024/05/18 00:44
Eclipse+Spring+SpringMVC+Redis+MySql
+MyByties+Maven开发移动端接口
1、pom.xml文件,配置Maven本地仓库
pom文件是Maven的配置文件,可以加载依赖的jar。还可以加载本地的jar。打包项目等。
说明:
- 1、本项目要用MVC返回json数据,除了要在controler中的对应方法上添加 @ResponseBody,来说明是返回特殊类型数据(非页面)外,还要引入com.fasterxml.jackson.core的jar包。具体可以参考下边的代码。
- 2、本项目除了Maven管理和下载的jar包外,还有本地class路径下的lib目录里的本地jar包需要引用。用Maven打包管理项目,需要在pom文件中配置好本地jar。否则打包不成功。
如:
<dependency> <groupId>org.springside</groupId> <artifactId>springside3-core</artifactId> <version>3.3.4</version> <scope>system</scope> <systemPath>${project.basedir}/lib/springside3-core-3.3.4.jar</systemPath> </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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.keegoo</groupId> <artifactId>KeegooDService</artifactId> <name>KeegooDService</name> <!-- version不要修改,否则部署会失败 --> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <!-- finalName不要修改,否则部署会失败 --> <finalName>ROOT</finalName> <!-- <springVersion>4.3.12.RELEASE</springVersion> --> <!-- springframe 版本控制 --> <spring.version>4.2.4.RELEASE</spring.version> <org.slf4j-version>1.6.1</org.slf4j-version> <mybatis-version>3.4.0</mybatis-version> </properties> <repositories> <repository> <id>public</id> <url>http://repo1.maven.org/maven2/</url> </repository> </repositories> <dependencies> <!-- springframe start --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <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-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</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-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.0.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springside</groupId> <artifactId>springside3-core</artifactId> <version>3.3.4</version> <scope>system</scope> <systemPath>${project.basedir}/lib/springside3-core-3.3.4.jar</systemPath> </dependency> <!-- springframe end --> <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <!-- Commons --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.3</version> </dependency> <!-- End Commons --> <!-- DB --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.13</version> </dependency> <!-- End DB --> <!-- Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> <!-- JSON begin --> <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> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.5</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>2.3.3</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency> <!-- JSON end --> <!-- jms --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.4.2</version> </dependency> <!-- velocity 1.5 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.5</version> </dependency> <!-- jredis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>com.google.collections</groupId> <artifactId>google-collections</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <!-- 七牛SDK --> <dependency> <groupId>com.qiniu</groupId> <artifactId>sdk</artifactId> <version>6.1.9</version> </dependency> <!-- google zxing --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>2.12.1</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis-version}</version> </dependency> <!-- <dependency> <groupId>baidu</groupId> <artifactId>bccs-api</artifactId> <version>3.0.1</version> </dependency> --> <dependency> <groupId>baidu</groupId> <artifactId>bccs-api</artifactId> <version>3.0.1</version> <scope>system</scope> <systemPath>${project.basedir}/lib/bccs-api-3.0.1.jar</systemPath> </dependency> <!-- 淘宝阿里大鱼api --> <!-- <dependency> <groupId>taobao</groupId> <artifactId>sdk</artifactId> <version>20160505</version> </dependency> --> <dependency> <groupId>taobao</groupId> <artifactId>sdk</artifactId> <version>20160505</version> <scope>system</scope> <systemPath>${project.basedir}/lib/taobao-sdk-java-auto.jar</systemPath> </dependency> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.7</version> </dependency> </dependencies> <!-- <distributionManagement> <repository> <id>keegoo-releases</id> <name>keegoo-releases</name> <url>http://182.92.72.143:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>keegoo-snapshots</id> <name>keegoo-snapshots</name> <url>http://182.92.72.143:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> --> <build> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> <finalName>${finalName}</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <warName>${finalName}</warName> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <server>tomcat-local</server> <path>/</path> <port>8085</port> </configuration> </plugin> <!--<plugin> --> <!--<groupId>org.apache.tomcat.maven</groupId> --> <!--<artifactId>tomcat7-maven-plugin</artifactId> --> <!--<version>2.2</version> --> <!--<configuration> --> <!--<url>http://101.201.52.184:8080/manager/text</url> --> <!--<server>tomcat-ali</server> --> <!--<path>/KeegooDService</path> --> <!--<username>fengqiang</username> --> <!--<password>qf19840815</password> --> <!--</configuration> --> <!--</plugin> --> </plugins> </build></project>
- 3、配置Maven的本地仓库
Maven本地仓库window系统下默认是 C:\Users\Administrator.m2\repository 这样的路径下。但因为C盘的重装系统等的原因,有时需要更改本地仓库路径。
设置本地maven仓库方法如下:
1、建立本地文件夹,做为仓库本地地址。如:D:\maven_local\repository
2、设置maven配置文件,:settings.xml。并将该文件复制到仓库目录下边。如:D:\maven_local 这里配置了国内镜像,是阿里云的。速度我很满意。感谢马云粑粑。
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\maven_local\repository</localRepository><mirrors><mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror></mirrors></settings>
3、设置eclipse的maven的插件对应的setting文件。
eclipse点击windows->preferences->maven->User setting下
修改user setting选项为:D:\maven_local\settings.xml,并点击update settings。
并点击下面的reindex按钮更新索引
- 4 这里该项目打包成war包是ROOT.war。本意是访问接口的时候不带工程名。将ROOT.war放到Tomcat路径下,自动解析,即可访问。如果是在Eclipse中debug或直接调试布置,需要更改Tomcat的虚拟路径。下边两个方法都可以达到这个目的。
图片1
图片2
2、配置web.xml 和 SpringMVC
web.xml需要配置SpringMVC的监听器,加载spring的xml配置文件,配置springmvc DispatcherServlet ,和需要拦截的url等。废话不说了,直接上代码
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>KeegooDService</display-name> <!-- 监听spring上下文容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 加载数据字典 在Spring配置的下面--> <listener> <listener-class>com.keegoo.cache.InitDicListener</listener-class> </listener> <!-- 加载spring的xml配置文件到spring的上下文容器中 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/spring-mvc.xml</param-value> </context-param> <!-- 配置springmvc DispatcherServlet --> <servlet> <servlet-name>applicationContext</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置DispatcherServlet需要拦截的url --> <servlet-mapping> <servlet-name>applicationContext</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- Filter 定义 Character Encoding filter --> <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-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
这里需要加载classpath*:/spring-mvc.xml
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" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd" default-lazy-init="true"> <!-- 通过component-scan让spring扫描package下的所有类,让spring的注解生效 --> <context:component-scan base-package="com.keegoo"></context:component-scan> <mvc:interceptors> <!-- 对过慢请求打印请求路径及时间 --> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.keegoo.interceptor.PrintSlowReqToLogInterceptor" /> </mvc:interceptor> <!-- 打印所有请求路径及请求参数(调试时使用) --> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.keegoo.interceptor.CommonLogInterceptor" /> </mvc:interceptor> </mvc:interceptors> <!--默认注解映射的支持 --> <mvc:annotation-driven /> <!-- 访问静态资源文件 --> <!-- <mvc:default-servlet-handler/> <mvc:resources location="/" mapping="/"/> --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> <property name="ignoreResourceNotFound" value="true" /> <property name="locations"> <list> <value>classpath*:/application.properties</value> <value>classpath*:/log4j.properties</value> </list> </property> </bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> <!-- 配置springmvc的视图渲染器,让其前缀为:/ 后缀为: .jsp 将视图渲染到 /views/<method返回值>.jsp中 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> </bean> <mvc:view-controller path="/" view-name="redirect:/index" /> <!-- 开发测试环境数据源配置,使用应用内的DBCP数据库连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${connection.driver}" /> <property name="url" value="${connection.url}" /> <property name="username" value="${connection.username}" /> <property name="password" value="${connection.password}" /> <!--连接池配置 --> <property name="initialSize" value="${connection.initialSize}"></property> <property name="maxActive" value="${connection.maxActive}" /> <property name="maxIdle" value="${connection.maxIdle}" /> <property name="minIdle" value="${connection.minIdle}" /> <property name="maxWait" value="${connection.maxWait}" /> <property name="removeAbandoned" value="${connection.removeAbandoned}" /> <property name="removeAbandonedTimeout" value="${connection.removeAbandonedTimeout}" /> </bean> <!-- JdbcTemplate --> <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> <!-- NamedParameterJdbcTemplate --> <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg> <ref bean="dataSource" /> </constructor-arg> </bean> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 事务控制 --> <tx:annotation-driven transaction-manager="txManager" /> <!-- <import resource="applicationContext-jms.xml"/> --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="${redis.maxActive}" /> <property name="maxIdle" value="${redis.maxIdle}" /> <property name="maxWaitMillis" value="${redis.maxWait}" /> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg index="0" ref="jedisPoolConfig" /> <constructor-arg index="1" value="${redis.host}" /> <constructor-arg index="2" value="${redis.port}" type="int" /> <constructor-arg index="3" value="${redis.timeout}" type="int" /> <!--<constructor-arg index="4" value="${redis.password}"/> --> </bean></beans>
这里又用到了Redis和数据库访问是配置文件classpath*:/application.properties
application.properties的代码如下
#jms#jms.brokerURL=tcp\://10.171.43.136\:61616?wireFormat.maxInactivityDuration\=0jms.brokerURL=tcp\://127.0.0.1\:61616?wireFormat.maxInactivityDuration\=0#1(\u56fd\u90fd);2(\u4f0a\u7f8e);3(\u901a\u8fbe)smsChannelTrigger=3#mysqlconnection.driver=com.mysql.jdbc.Driverconnection.url=jdbc:mysql://localhost:3306/keegoo?useUnicode=true&characterEncoding=utf8connection.username=rootconnection.password=123456#connection.url=jdbc:mysql://101.200.113.76:3306/kee61?autoReconnect=true&characterEncoding=utf8#connection.username=kgtest#connection.password=JG2016dev!connection.initialSize=10connection.maxActive=100connection.maxIdle=30connection.minIdle=5connection.maxWait=5000connection.removeAbandoned=trueconnection.removeAbandonedTimeout=3000connection.logAbandoned=false#redis的服务器地址redis.host=127.0.0.1#redis的服务端口redis.port=6379#密码#redis.password=#链接数据库redis.default.db=0#客户端超时时间单位是毫秒redis.timeout=10000#最大连接数redis.maxActive=300#最大空闲数redis.maxIdle=100#最大建立连接等待时间redis.maxWait=1000#isdev=ture表示开发环境,isdev=false表示生产环境isdev=true
3、Redis
本项目需要安装和开启Redis。
可参考 http://www.runoob.com/redis/redis-tutorial.html
这里只上几张截图即可。
用到的cmd命令为:
1.打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis(你下载解压的目录即可)
运行 redis-server.exe redis.windows.conf2.切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
设置键值对 set myKey abc
取出键值对 get myKey
下边直接上截图
- SpringMVC开发移动端接口(返回Json数据)
- 移动端接口开发经验一二
- springmvc 返回 json数据
- springmvc返回json数据
- SpringMVC返回json数据
- SpringMVC返回JSON数据
- SpringMVC返回JSON数据
- SpringMVC返回json数据
- springmvc返回json数据
- Springmvc返回json数据
- SpringMVC返回json数据
- springmvc 移动端接收图片
- springMVC框架下如何实现移动端接口调用
- springMVC框架下如何实现移动端接口调用2
- C#编写手机端接口返回Json 实例
- SpringMvc 返回数据为json
- springmvc 4 返回json数据
- springmvc如何返回json数据
- Spring学习-----ONE
- Filebeat + Elasitcsearch + Kibana 日志收集系统
- free看了《猎场》,自制力沦丧啊,写点国产剧猎场的台词感想吧
- C 数据类型转换
- SecureCRT介绍、安装、使用
- SpringMVC开发移动端接口(返回Json数据)
- powerdesigner打开某个pdm,提示”the model will be opened in read-only mode“,导致对pdm修改的时候保存不上,
- 面向对象--设计模式
- AI基础(一)期望和方差
- 线性回归----最小二乘法
- ROS引用其他package中库文件
- 拉格朗日对偶
- react-native-quan代码分析笔记
- 华展云-让展览更高效 2017第6届中国国防信息化装备与技术博览会会刊(参展商名录)