一个电商项目的Web服务化改造7:Dubbo服务的调用,4个项目

使用dubbo服务的过程,很简单,和之前学习的WebService完全一样,和本地接口调用也基本一致。

    
dubbo和WebService的区别 :我认为dubbo就是封装了WebService,然后提供了更多的配套功能。看jar包依赖,dubbo依赖的WebService。( 青出于蓝,而胜于蓝。冰,水为之,而寒于水。 )
    dubbo接口和本地service接口的区别:dubbo调用的是远程方法,本地调用的本地方法


    作为服务的实现方,或者说最初负责“服务化改造” 的人来说,你需要考虑到怎么简化调用方的工作,怎么测试服务方的接口。因此, 我认为需要4个项目。

1.接口项目-调用者只需要知道这个
   服务调用方和服务提供方的交互接口。
   定义服务的接口,公共的mobel、bean等实体类。
   BrandService.java,Brand.java,BrandBean.java
  
   dubbo服务配置:

 
<dubbo:reference id="brandService" interface="com.webservice.service.front.BrandService" version="1.0.0"
   url="webservice://127.0.0.1:9000/com.webservice.service.front.BrandService"/>
 
2.接口实现项目-服务的实现者 
   BrandServiceImpl.java
   其它相关代码和配置
  
<bean id="brandService" class="com.webservice.service.impl.BrandServiceImpl"/>
   
 <dubbo:service interface="com.webservice.service.front.BrandService" version="1.0.0"
   protocol="webservice" ref="brandService"/>
 
3.本地测试项目 
   单元测试:mapper、dao、service
   参考前一篇的单元测试代码,初始化+标准4步

4.dubbo远程测试项目 
   
单元测试:service(不可能知道dao和mapper的实现),参考上一篇单元测试代码
    Java应用测试:service,调用方也可能是普通的Java应用程序调用(模拟真实场景1)
   Web应用测试  service,调用方,有较大可能是Web项目调用(模拟真实场景2)

 
 public class BrandServiceTest {
	public static void main(String[] args) {
		String configLocation = "classpath*:spring-context-nodubbo.xml";
		configLocation = "spring-context-dubbo.xml";
		ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext(
				configLocation);
		classPathXmlApplicationContext.start();
		BrandService brandService = (BrandService) classPathXmlApplicationContext
				.getBean("brandServiceImpl");
		//BrandService brandService = (BrandService) classPathXmlApplicationContext
			//	.getBean(BrandService.class);
		//找不到,名字是brandServiceImpl,或者根据类型
		//BrandService brandService = (BrandService) classPathXmlApplicationContext
		//		.getBean("brandService");
		List<Brand> brandList = brandService.listAll();
		for (Brand brand : brandList) {
			System.out.println("=====================================");
			System.out.println(brand.getName());
			System.out.println("=====================================");
		}
		classPathXmlApplicationContext.close();

	}
} 



@Controller
@RequestMapping("brand")
public class BrandController {

	@Autowired
	private BrandService brandService;
	
	@ResponseBody
	@RequestMapping("listAll")
	public List<Brand> listAll(){
		return brandService.listAll();
	}
	
}

 
 个人观察:面向接口编程。接口调用方,只知道接口,而不知道实现, 真是不错。

转载于:https://www.cnblogs.com/qitian1/p/6462422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以提供一些有关使用Java和Spring Cloud开发电商项目的建议:1.使用Spring Boot搭建你的应用程序,这将极大地简你的开发过程;2.使用Spring Cloud Netflix来构建你的微服务架构;3.将Spring Data JPA与你的数据库集成,来实现持久操作;4.使用Spring Cloud Config来实现配置管理;5.使用Spring Security来实现安全认证;6.使用Spring Cloud Netflix Eureka来实现服务注册与发现;7.使用Spring Cloud Netflix Zuul来实现API网关;8.使用Spring Cloud Bus来实现消息总线;9.使用Spring Cloud Stream来实现消息驱动的微服务。 ### 回答2: 使用Java和Spring Cloud开发电商项目可以带来许多好处。Java是一种强大的编程语言,具有良好的跨平台性和丰富的开发工具和框架。而Spring Cloud是一个基于Spring框架的开发工具,它提供了一套方便的微服务组件,可以快速构建分布式系统。 使用Java和Spring Cloud开发电商项目,首先可以利用Java的面向对象特性来设计和开发项目的各个模块,使得代码结构清晰、可维护性强。同时,Java的丰富的库和框架可以提供很多功能模块的实现,例如数据库操作、网络通信、数据加密等,大大缩短了开发周期。 而Spring Cloud作为一个服务框架,可以提供服务注册与发现、负载均衡、断路器、配置中心等解决方案,可以帮助开发者更轻松地实现分布式系统的各个模块。例如,使用Spring Cloud Eureka进行服务注册与发现,可以方便地管理服务之间的依赖关系,并提供自动负载均衡;使用Spring Cloud Config可以集中管理各个服务的配置信息,方便维护和修改。 在电商项目中,Java和Spring Cloud可以帮助我们实现用户管理、商品管理、订单管理等核心功能。我们可以使用Spring Cloud提供的服务注册与发现功能,将用户服务、商品服务、订单服务等拆分为独立的Spring Boot项目,并使用Feign或RestTemplate实现服务间的调用。这样,我们可以方便地扩展和修改各个模块,提高系统的可扩展性和可维护性。 总之,使用Java和Spring Cloud来开发电商项目一个可行的选择。Java的强大和Spring Cloud的丰富功能可以帮助我们快速构建分布式系统,并能够方便地扩展和修改各个功能模块,提高开发效率和项目质量。 ### 回答3: 使用Java和Spring Cloud开发一个电商项目可以提供一个高效、可靠的电子商务平台。Java是一种范式的、面向对象的、编译和解释执行的高级编程语言,它的特点是安全、稳定、可移植性强。而Spring Cloud是一个基于Spring Boot的开发工具箱,它提供了一整套微服务架构的解决方案,包括服务注册与发现、负载均衡、服务容错保护等。 在电商项目中,Java和Spring Cloud的结合可以实现以下功能: 1. 用户认证与授权:可以使用Java中的安全框架和Spring Cloud的微服务架构,实现用户登录、注册、密码加密、授权等功能。 2. 商品管理:可以使用Java的面向对象特性和Spring Cloud的分布式架构,实现商品的增删改查、库存管理、图片上传等功能。 3. 订单管理:可以使用Java的多线程处理和Spring Cloud的分布式事务管理,实现订单的创建、支付、取消等功能。 4. 评论与评分:可以使用Java中的数据库访问技术和Spring Cloud的消息队列,实现用户对商品的评论、评分等功能。 5. 支付与物流:可以使用Java的支付接口和Spring Cloud的服务调用功能,实现用户的在线支付和物流信息查询等功能。 6. 数据统计与分析:可以使用Java的数据处理和Spring Cloud的日志监控功能,实现销售数据的实时统计和分析报表的生成。 总之,使用Java和Spring Cloud开发电商项目可以充分发挥Java的稳定性和可移植性,以及Spring Cloud的微服务架构和分布式系统的优势,实现一个高效、可靠的电子商务平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值