当前位置: 代码迷 >> J2EE >> 想用spring做前后端分离的开发,到底该如何做
  详细解决方案

想用spring做前后端分离的开发,到底该如何做

热度:65   发布时间:2016-04-17 23:25:10.0
想用spring做前后端分离的开发,到底该怎么做?
我一直很郁闷,网上查了不少。大概只了解到HTML+Ajax向服务端发送请求后,spring根据请求将数据以JSON发送回客户端。
于是乎我开始纠结了,最先开始是发现springMVC无法像JSP一样,用视图解析器去访问WEB-INF下的JSP资源。我只能把HTML设置成静态资源去访问,虽然URL可以在控制类中用@RequestMapping注解,来转发路径。
可是因为静态资源,所以将文件目录作为url也能访问到HTML。这让我纠结了很久,想隐藏掉真实的URL,可又做不到。。。至少我能力有限,实在找不到解决办法。
而在服务端方面。。。虽然模糊的知道在获取Ajax的请求后,应该返回一个JSON格式的响应。可具体该怎么做,却毫无头绪,上网查了查也弄得更是一头雾水。
什么是MRI,什么是REST。。。这到底和我想做的有没有关系啊!
已经完全不知道该怎么下手了。。。也找不到想要的教程和资料。
求求各位大神给我提供下学习方向吧。。。
------解决思路----------------------
1、Spring可以解析WEB-INFO下面的jsp文件,只需要在dispatcher-servlet.xml中配置视图解析器即可。RequestMapping注解的方法返回一个ModelAndView即可
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

2、想隐藏真实的路径,可以使用urlrewritefilter这个工具jar包,具体使用请参考官网:tuckey.org/urlrewrite/manual/4.0/index.html
3、Spring现在高版本可以使用RestController这个注解,该注解标记的类中所有的RequestMapping方法都将直接将结果写入response流中,如果要直接返回JSON格式的数据,做如下配置(我用的fastjson):备注(如果用Spring自带的JSON解析器,需要引入Jackson的相关jar包,不需要添加下面的配置也行)
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

------解决思路----------------------
前后端分离:
前后端人员双方约定好接口的数据格式,比如:前端需要调用一个用户信息的接口,数据格式为{name:'',gender:''},那么,后端人员只需要告诉他一个接口url(如:http://192.168.1.2:8080/pro/userInfo),并且将这个接口返回前端想要的数据即可,至于后端人员怎么实现这个接口,前端人员并不关心!至于前端人员要用这个接口来做什么,后端人员同样不需要关心!双方都只专注于自己需要实现的业务逻辑
  相关解决方案