springMVC在接口化开发在企业中的实践

来源:互联网 发布:windows ftp命令详解 编辑:程序博客网 时间:2024/06/07 13:56

很多大传统企业用的产品都是SAP的标准化产品,可能用过SAP的朋友都知道,确实很标准化,很多东西都是循规蹈矩的,SAP的产品确实很强大,这个不能否认,但是软件也是万能的东西,却是异常的庞大,当然这是个人的观点,在netweaver上写东西,上传到服务器,每次上线都得重新启动服务器,这个个漫长的过程。

前段时间,在做公司的一个项目的时候,为了去SAP化,这里指的只是portal,想开发点新的东西,采用的都是开源的项目,如spring,mybatise、docker、等。对于 集成SAP也就是我们说的单点登入,这里就不做讨论了,里边有好的坑,后续有时间我会专门写一篇博客来阐述,如何集成SAP的portal实现单点登入的效果。

废话不多说了,直接进入主题了,下边是是web端的一个大致的架构,都是很常见的,移动端的不是很熟悉,就不画了。

 

1.主要想讲的的就是后台的tomcat集群,这里边所有都是接口化开发,也就是组件化吧,也可以说是微服务的一种实现吧,用的框架就是SpringMVC来实现的,其实用springBoot也是蛮不错的选择,这个代码我有做个一个demo,但是集团出于别的考虑,就没有用吧,比如开发人员的学习成本等,这个逼废话,你懂的。

边直接上代码了,下边是后台接口Controller的一个方法,(注:只是demo,但麻雀虽小,五章俱全,公司的代码是不可能拿到的,这个都是自己平时在家或者图书官写的,都是不会涉及其他人的利益的,引用别人的我会标注出出处的)

package com.demo.login.controller;import java.util.HashMap;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import com.demo.login.pojo.User;import com.demo.login.service.UserService;@RequestMapping(value="toLogin")@Controllerpublic class LoginController {@Autowiredprivate UserService userService;/** * 接口说明 : * data:1 登入成功,0登入失败 * @param user * @return */@RequestMapping(value="toValidateLogin",method=RequestMethod.POST)@ResponseBodypublic Map<String, Object> login(User user){Map<String, Object> map = new HashMap<String, Object>();try {int loginVal = this.userService.loginVal(user);map.put("data", loginVal);map.put("status", true);} catch (Exception e) {map.put("data", 0);map.put("status", false);e.printStackTrace();}return map;}}

@ResponseBody这个注解就可以实现接口的调用了,返回的json,在展现层直接调用这个接口就ok,当然了,登入不可能这么随意的这里只是为了演示。
2.下边是前台发送请求来调用接口(web端的实现,若果移动端的也是)

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>集团登入界面</title><script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script></head><body>用户名:<input type="text" id="nameId"><br>密   码:<input type="password" id="passWordId"><br><button onclick="login()">登入</button><script type="text/javascript">function login(){var name = $("#nameId").val();var passWord = $("#passWordId").val();//空、长度等校验就不写了$.ajax({async: false,    url: "http://localhost:8080/login/toLogin/toValidateLogin",    type: "post",    datatType: "json",    data:{"name":name,"passWord":passWord},    success: function(data){    //data 1表示成功,0失败    alert(data);    }, //成功执行方法      error: function (data) {    //错误处理    alert("登入校验出现异常");    }});}</script></body></html>
这里直接发送ajax请求就ok,这些静态资源可以放到nginx托管。具体的代码我会上传到csdn中,但在代码中对js的代码我们有放到nginx中也是直接打成war包放到tomcat中中测试了。

代码的路径是:可能需要审核之类的,后续再加上吧。