首页 > 其他分享 >dubbo分布式项目开发____dubbo服务调用开发

dubbo分布式项目开发____dubbo服务调用开发

时间:2023-09-13 15:34:07浏览次数:57  
标签:dubbo String appender ____ cnse user 开发 import log4j


//创建工程名 cnse-customer-user

导入jar包 

//工程结构

dubbo分布式项目开发____dubbo服务调用开发_xml

dubbo分布式项目开发____dubbo服务调用开发_xml_02

//spring 文件配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:c="http://www.springframework.org/schema/c"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://code.alibabatech.com/schema/dubbo  
            			http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
	<!-- 其他context引用  -->
    <!-- 引入调用dubbo服务的资源文件 -->
    <import resource="dubbo-customer-user.xml"/>
    
</beans>

//service接口

package com.cnse.provider.user.service;

import java.util.List;

import com.cnse.provider.user.service.po.User;


/**
 * @author Administrator
 * 
 */
public interface UserService {
	//检测用户登录的接口
	public String checkLoginUser(String username,String password);
	//获取用户列表的接口
	public List<User>getUsers();

}



//service空实现 以为服务端不会告诉你具体的实现 但自己要做一个空实现 

package com.cnse.provider.user.service.impl;

import java.util.List;

import com.cnse.provider.user.service.UserService;
import com.cnse.provider.user.service.po.User;

/**
 * @author Administrator
 * 服务端是不会给客户端具体的实现方法的
 * 所有要做一个空实现 调用的时候都是调用的服务端的
 */
public class UserServiceImpl implements UserService {

	@Override
	public String checkLoginUser(String username, String password) {
		return null;
	}

	@Override
	public List<User> getUsers() {
		return null;
	}
	
}



//dubbo调用xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:c="http://www.springframework.org/schema/c"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://code.alibabatech.com/schema/dubbo  
            			http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">

	<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
	<dubbo:application name="cnse-customer-user" />

	<!-- 使用zookeeper注册中心暴露服务地址 -->
	<!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> -->
	<dubbo:registry address="zookeeper://127.0.0.1:2181" />
	<!-- 生成远程服务代理,可以像使用本地bean一样使用demoService -->
	<dubbo:reference id="userService" interface="com.cnse.provider.user.service.UserService" />

</beans>

//log日志文件

#开发日志将在本地输出,并输出SQL

log4j.rootLogger=INFO,A1,DRF
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
log4j.appender.A1.layout.ConversionPattern=%d %5p [%F:%L] : %m%n

log4j.appender.DRF=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRF.Threshold=INFO
log4j.appender.DRF.DatePattern='.'yyyy-MM-dd
log4j.appender.DRF.File=logs/cnse_customer_user.log
log4j.appender.DRF.Append=true
log4j.appender.DRF.layout=org.apache.log4j.PatternLayout
log4j.appender.DRF.layout.ConversionPattern=[%-5p][%d{yyyyMMdd HH:mm:ss,SSS}][%C{1}:%L] %m%n

//webxml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>cnse-customer-user</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-context-customer.xml</param-value>
  </context-param>
</web-app>



//调用服务接口的测试类

package com.cnse.customer.user.test;

import java.util.List;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.cnse.provider.user.service.UserService;
import com.cnse.provider.user.service.po.User;


/**
 * @author Administrator
 *
 */
public class UserConsumer {

	public static void main(String[] args) throws Exception {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[] { "spring-context-customer.xml" });
		context.start();

		UserService userService = (UserService) context.getBean("userService");
		String respStr = userService.checkLoginUser("admin","123456");
		System.out.println("调用登录服务的接口__respStr__:"+respStr);

		List<User>list = userService.getUsers();
		if (list != null && list.size() > 0) {
			for (int i = 0; i < list.size(); i++) {
				System.out.println("调用用户列表服务的接口__respStr__:"+list.get(i));
			}
		}
		System.in.read();
	}

}



//运行结果 


dubbo分布式项目开发____dubbo服务调用开发_xml_03



//代码和资源文件  百度资源地址:http://pan.baidu.com/s/1kVLnEkR   dubbo客户端和服务端的代码

标签:dubbo,String,appender,____,cnse,user,开发,import,log4j
From: https://blog.51cto.com/ratelcloud/7455554

相关文章

  • git 回撤操作
    背景:同一个分支上,比如做了10个功能,有10次提交记录,但是产品突然说后面的五个功能不要了解决方案:git的revert命令。gitrevert命令的含义gitrevertcommitId1.表示撤销某个提交,并不是说撤销至某个提交。举个例子:新增1.txt文件进行第一次提交,新增2.txt文件进行第二次提交;此时......
  • dubbo分布式项目开发____dubbo服务接口开发
    //1.创建服务提供者工程名 cnse-provider-user //2.导入jar包和创建工程包名//配置spring的xml文件<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i......
  • C# 实现二维码
    https://blog.csdn.net/qq_43562262/article/details/105988725查了下资料,约有两种方法,一种是引用新的dll,另一种是安装nuget中的QRcoder,在此记录下别人整理的资源。必须的引入的类库usingSystem;usingSystem.Drawing;usingSystem.Text;usingThoughtWorks.QRCode.Codec;//......
  • dubbo分布式项目开发____Zookeeper搭建步骤和配置思路
    //搭建zookeeper 1.可以放到在linux下可以在windows下解压到指定的目录如个人:F:\zookeeper2.复制下conf下复制下zoo_simple.cfg文件把复制的修改成zoo.cfg内容如下一定以不要出现中文会报错的3.修改完成后进入windowsdos命令回车一下内容说明注册中心配置正常//资源地址......
  • 2023.9.13 greedy and DS
    CF1439C考虑修改操作,由于序列是单调的,所以只需要线段树二分出修改的区间即可。考虑查询,一定是若干个连续段,设一开始是\(y\),这个连续段结束后,\(y\)至少减去一半,所以连续段个数是\(\log\)级别。在线段树上遍历即可。......
  • Dubbo配置问题____spring中dubbo标签报错问题和解决方案
    //1.当在springxml中引用dubbo标签时会报错windows-->preferrence-->xml->xmlcatalog-->add->catalogentry-->filesystem,选择模版文件后,修改key值为“http://code.alibabatech.com/schema/dubbo/dubbo.xsd”//资源文件下载 http://pan.baidu.com/s/1c2h6uzA......
  • openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据
    openGauss学习笔记-68openGauss数据库管理-创建和管理普通表-向表中插入数据在创建一个表后,表中并没有数据,在使用这个表之前,需要向表中插入数据。本小节介绍如何使用INSERT命令插入一行或多行数据,及从指定表插入数据。如果有大量数据需要批量导入表中,请参考导入数据。68.1背景......
  • C#时间转换
    //获取日期+时间DateTime.Now.ToString("yyyyMMddHHmmss");//20080101130101----24小时制 //获取日期DateTime.Now.ToLongDateString().ToString();//2008年9月4日DateTime.Now.ToShortDateString().ToString();//2008-9-4DateTime.Now.ToString("yyyy-MM-dd&quo......
  • Linux手动安装jre
    ......
  • 3.4 DLL注入:全局消息钩子注入
    SetWindowHookEx是Windows系统的一个函数,可用于让一个应用程序安装全局钩子,但读者需要格外注意该方法安装的钩子会由操作系统注入到所有可执行进程内,虽然该注入方式可以用于绕过游戏保护实现注入,但由于其属于全局注入所以所有的进程都会受到影响,而如果想要解决这个问题,则需要在Dll......