当前位置: 首页 > news >正文

医院网站域名备案空间设计工作室网站

医院网站域名备案,空间设计工作室网站,营销策划公司排名,网站搭建的意义微服务的拆分与远程调用 创建父工程 任何分布式架构都离不开服务的拆分, 微服务也是一样 , 微服务的拆分遵守三个原则 微服务需要根据业务模块拆分,不同微服务不要重复开发相同业务每个微服务都有自己独立的数据库, 不要直接访问其他微服务的数据库微服务可以将自己的业务暴…微服务的拆分与远程调用 创建父工程 任何分布式架构都离不开服务的拆分, 微服务也是一样 , 微服务的拆分遵守三个原则 微服务需要根据业务模块拆分,不同微服务不要重复开发相同业务每个微服务都有自己独立的数据库, 不要直接访问其他微服务的数据库微服务可以将自己的业务暴露为接口供其他微服务调用 创建父工程cloud-demo用来管理项目所需要的依赖的版本 order-service订单微服务模块(工程): 负责订单相关业务,如根据订单Id查询订单user-service用户微服务模块(工程): 负责用户相关业务,如根据用户Id查询用户 groupIdcn.itcast.demo/groupId artifactIdcloud-demo/artifactId version1.0/version !--管理子模块-- modulesmoduleuser-service/modulemoduleorder-service/module /modules packagingpom/packaging!--当前SpringBoot项目继承的父工程-- parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.9.RELEASE/versionrelativePath/ /parent!--依赖版本号属性-- propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.versionspring-cloud.versionHoxton.SR10/spring-cloud.versionmysql.version5.1.47/mysql.versionmybatis.version2.1.1/mybatis.version /properties!--引用定义的依赖版本属性值,对依赖的版本进行管理,并不会在项目中引入依赖-- dependencyManagementdependencies!-- springCloud --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency!-- mysql驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency!--mybatis--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion${mybatis.version}/version/dependency/dependencies /dependencyManagement dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency /dependencies创建订单微服务模块(工程) 第一步: 执行cloud-order.sql文件创建订单数据库,cloud-order的tb_order表中含有用户数据库的tb_user表的Id字段 Data public class Order {private Long id;private Long price;private String name;private Integer num;private Long userId;private User user; }第二步: 配置order-service工程的pom.xml文件 parentartifactIdcloud-demo/artifactIdgroupIdcn.itcast.demo/groupIdversion1.0/version /parent modelVersion4.0.0/modelVersion artifactIdorder-service/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!--mybatis--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactId/dependency /dependencies buildfinalNameapp/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins /build第三步: 配置order-service工程的application.yml文件 server:port: 8080 spring:datasource:url: jdbc:mysql://localhost:3306/cloud_order?useSSLfalseusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver mybatis:type-aliases-package: cn.itcast.user.pojoconfiguration:map-underscore-to-camel-case: true logging:level:cn.itcast: debugpattern:dateformat: MM-dd HH:mm:ss:SSS第四步: 创建Mapper接口和自定义Service类,这里就不再创建业务类的实现类了 Mapper public interface OrderMapper {Select(select * from tb_order where id #{id})Order findById(Long id); } Service public class OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate UserClient userClient;public Order queryOrderById(Long orderId) {// 查询订单Order order orderMapper.findById(orderId);// 返回查询到的订单对象,user属性为nullreturn order;} }第五步: 在order-service工程中创建controller/OrderController,编写接口根据订单Id从订单数据库中查询订单信息 RestController RequestMapping(order) public class OrderController {Autowiredprivate OrderService orderService;GetMapping({orderId})public Order queryOrderByUserId(PathVariable(orderId) Long orderId) {// 根据id查询订单并返回return orderService.queryOrderById(orderId);} }第五步: 打开浏览器访问http://localhost:8080/order/101可以查询到订单数据的但此时user属性的值是null {id: 101,price: 699900,name: Apple 苹果 iPhone 12 ,num: 1,userId: 1,user: null }创建用户微服务模块(工程) 第一步: 执行cloud-user.sql文件创建用户数据库,创建tb_user表及其对应的实体类 Data public class User {private Long id;private String username;private String address; }第二步: 配置user-service工程的pom.xml文件 parentartifactIdcloud-demo/artifactIdgroupIdcn.itcast.demo/groupIdversion1.0/version /parent modelVersion4.0.0/modelVersionartifactIduser-service/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!--mybatis--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactId/dependency /dependencies buildfinalNameapp/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins /build第三步: 配置user-service工程的application.yml文件 server:port: 8081 spring:datasource:url: jdbc:mysql://localhost:3306/cloud_user?useSSLfalseusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver mybatis:type-aliases-package: cn.itcast.user.pojoconfiguration:map-underscore-to-camel-case: true logging:level:cn.itcast: debugpattern:dateformat: MM-dd HH:mm:ss:SSS第四步: 配置Mapper接口和Service类,这里就不再创建业务类的实现类了 Mapper public interface UserMapper { Select(select * from tb_user where id #{id})User findById(Param(id) Long id); } Service public class UserService {Autowiredprivate UserMapper userMapper;public User queryById(Long id) {return userMapper.findById(id);} }第五步: 在user-service工程中创建controller/UserController,编写接口根据用户Id从用户数据库中查询用户信息 Slf4j RestController RequestMapping(/user) public class UserController {Autowiredprivate UserService userService;/*** 路径 /user/110* param id 用户id* return 用户*/GetMapping(/{id})public User queryById(PathVariable(id) Long id) {return userService.queryById(id);} }第六步: 打开浏览器访问http://localhost:8081/user/1查询到的数据如下 {id: 1,username: 柳岩,address: 湖南省衡阳市 }远程调用(RestTemplate) 需求: 访问订单模块根据订单Id查询订单,根据查询的订单对象中包含的userId访问用户模块查询出用户信息,然后封装到订单对象的user属性中返回 RestTemplate是Spring提供的发起http请求的工具类 方法名功能Object getForObject(url, Xxx.class)发起一个get请求并指定返回的类型(服务器默认返回Json类型的数据)Object postForObject(url, Xxx.class)发起一个post请求并指定返回的类型(服务器默认返回Json类型的数据) 第一步: 在order-service服务的代码逻辑中向user-service服务发起一个http请求,访问http://localhost:8081/user/{userId}查询用户信息 第二步: 在order-service服务中的OrderApplication启动类中(本质是个配置类)中注册RestTemplate实例到Spring容器当中 MapperScan(cn.itcast.order.mapper) SpringBootApplication public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }第三步: 修改订单服务的OrderService类中的queryOrderById方法,根据Order对象中包含的userId发http请求访问用户服务查询用户信息,然后一并返回 Service public class OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.findById(orderId);// 2.使用RestTemplate指定url地址发起http请求查询User,指定接收的类型(服务器默认返回Json类型的数据)String url http://localhost:8081/user/ order.getUserId();User user restTemplate.getForObject(url, User.class);// 3.存入orderorder.setUser(user);// 4.返回return order;} }第四步: 访问订单服务查询订单的接口http://localhost:8080/order/101,此时订单对象中包含对应用户的信息 {id: 101,price: 699900,name: Apple 苹果 iPhone 12 ,num: 1,userId: 1,user: {id: 1,username: 柳岩,address: 湖南省衡阳市} }
http://www.zqtcl.cn/news/163932/

相关文章:

  • 网站模块设计软件河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo
  • 陕西正天建设有限公司网站西安专业网页制作
  • 网站建设工作室介绍范文seo网站排名的软件
  • 上海网站建设-网建知识可编辑个人简历模板
  • 北京新鸿儒做的网站shopify做国内网站
  • 网站怎样做百度推广机关门户网站建设要求
  • 好看的网站后台模板沧州网站群
  • 深圳做网站排名公司哪家好哪些网站seo做的好
  • 国内网站建设推荐网站建设合同标准版
  • 哈尔滨网站制作费用企业成品网站模板
  • 网络广告网站怎么做北京海淀建设中路哪打疫苗
  • 房地产公司网站制作电影发布网站模板
  • 如何利用开源代码做网站网站本科
  • 公司是做小程序还是做网站宜宾住房与城乡建设部网站
  • 做网站哪个公司最社区问答网站开发
  • 网站引量方法网站建设推广页
  • 书店网站的建设网络营销方法有哪些
  • 深圳网站优化软件顺企网怎么样
  • 做网站的需要什么要求中国五百强企业排名表
  • 网络营销 企业网站外贸响应式网站建设
  • 网站网页制作公司o2o平台是什么意思啊
  • 惠州市网站建设个人网站怎么进入后台维护
  • 微信网站链接怎么做wordpress 绑定手机版
  • 网站建设的内容是什么在线阅读小说网站怎么建设
  • 福州网站开发哪家比较好建设网站需要掌握什么编程语言
  • 邹平做网站的公司莱芜人才网莱芜招聘
  • 旅行网站开发意义怎样优化网络速度
  • 手机微网站建设多少钱拟定网络设计方案
  • 厦门制作公司网站安卓原生app开发工具
  • worldpress英文网站建设wordpress输出外部文章