如何实现springboot中controller之间的相互调用

 更新时间:2021年06月09日 12:57:43   作者:qq_41235933  
这篇文章主要介绍了实现springboot中controller之间的相互调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot controller之间相互调用

在这里插入图片描述

SpringBoot之间内部调用

@Autowired
private RestTemplate restTemplate ;//自动装配restTemplate 
-------------------返回json字符串类型----------------------------------
@RequestMapping("/selectHospatal")
	@ResponseBody
	public String selectHospatal()
			throws Exception {
        //返回结果  pageNum
		PageData result = new PageData();
		PageData pageData =getPageData();
        int page=Integer.parseInt(pageData.getString("page"));
		int limit=Integer.parseInt(pageData.getString("limit"));
		String name="";
		name=pageData.getString("name");
		User user = (User) SecurityUtils.getSubject().getPrincipal();
			/*	管理员注册为0	患者为1药厂注册为3	医生注册为4
			 */
			if(name==null){
				name="";
			}
		String forObject="";
		int status=user.getStatus();//类型
		String zsId=user.getType_id();//类型id
		if(status==5){//诊室注册为5//getManageurl是别的springboot服务的地址如:localhost:8080
			String url = getManageurl+"/doctorController/selectHospatal?crid="+zsId+"&name="+name+"&page="+page+"&limit="+limit;
			forObject = restTemplate.getForObject(url, String.class);
		}
		if(status==6){//科室注册为6
			String url = getManageurl+"/doctorController/selectHospatal?dtid="+zsId+"&name="+name+"&page="+page+"&limit="+limit;
			forObject = restTemplate.getForObject(url, String.class);
        }
		if(status==2){//医院注册为2
     String url = getManageurl+"/doctorController/selectHospatal?houid="+zsId+"&name="+name+"&page="+page+"&limit="+limit;
	forObject = restTemplate.getForObject(url, String.class);
		}
    	return forObject;//返回的是json字符串类型
	}
--------------返回PageData对象---------------------------------
/**
 *   查询数据
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/viewd")
    @ResponseBody
	public PageData viewd() throws Exception{
		//参数
		PageData pageData = getPageData();
		try {
			String url = getManageurl+"/doctorController/view?id="+pageData.getString("id");
		//	String forObject = restTemplate.getForObject(url, String.class);
  			ResponseEntity<PageData> userResponseEntity = RestTemplateUtil.postJson(url, "", PageData.class, restTemplate);
			PageData body = userResponseEntity.getBody();
			return body;
		} catch (Exception e) {
			logger.error(e.toString());
			throw new Exception(e.toString());
		}
	}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java DelayQueue实现延时任务的示例详解

    Java DelayQueue实现延时任务的示例详解

    DelayQueue是一个无界的BlockingQueue的实现类,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。本文就来利用DelayQueue实现延时任务,感兴趣的可以了解一下
    2022-08-08
  • javaweb启动时启动socket服务端代码实现

    javaweb启动时启动socket服务端代码实现

    这篇文章主要介绍了javaweb启动时启动socket服务端代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • java 学习笔记(入门篇)_java的基础语法

    java 学习笔记(入门篇)_java的基础语法

    从基础语法开始,这个语法你也可以理解为英语或是汉语里面的语法,只不过大家各有各的特点和区别;那么在学习的过程中我们就要不断的积累重要的类和方法,这样写程序就会方便快捷了,下面就开始学习java的基础语法
    2013-01-01
  • MyBatis Plus Mapper CRUD接口测试方式

    MyBatis Plus Mapper CRUD接口测试方式

    在数据库管理系统中,插入记录是添加新数据条目,而删除操作包括根据主键ID单条删除和批量删除,也可以基于特定条件进行删除,删除操作的SQL语句是通过键值对在Map中拼接而成,如delete from 表 where key1=value1 AND key2=value2
    2024-09-09
  • IDEA自定义Maven archetype的方法步骤

    IDEA自定义Maven archetype的方法步骤

    在创建Maven的项目时我们发现了一个很不方便的问题,就是每次创建Maven的工程的时候,都需要选择一个骨架,本文主要介绍了IDEA自定义Maven archetype的方法步骤,感兴趣的可以了解一下
    2022-03-03
  • spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法

    spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法

    这篇文章主要介绍了spring-boot通过@Scheduled配置定时任务,文中还给大家介绍了springboot 定时任务@Scheduled注解的方法,需要的朋友可以参考下
    2017-11-11
  • springboot vue测试平台开发调通前后端环境实现登录

    springboot vue测试平台开发调通前后端环境实现登录

    这篇文章主要介绍了springboot vue测试平台开发调通前后端环境实现登录详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 深入学习java8 中的CompletableFuture

    深入学习java8 中的CompletableFuture

    本文主要介绍了java8中的CompletableFuture,CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步回调、流式处理、多个Future组合处理的能力,使Java在处理多任务的协同工作时更加顺畅便利,下文需要的朋友可以参考一下
    2022-05-05
  • Java字符串格式化,{}占位符根据名字替换实例

    Java字符串格式化,{}占位符根据名字替换实例

    这篇文章主要介绍了Java字符串格式化,{}占位符根据名字替换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 解析Mybatis连续传递多个参数的方法

    解析Mybatis连续传递多个参数的方法

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,这篇文章主要介绍了Mybatis连续传递多个参数的方法,需要的朋友可以参考下
    2016-08-08

最新评论