一般情况下,对一个类的实例和操作,是采用这种方法进行的:

Channel channel = new Channel();
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
int prefetchCount = 1;
channel.basicQos(prefetchCount);
byte[] bytes = message.getBytes("UTF-8");
channel.basicPublish("",bytes);

上面是一个Channel类,对它的创建和操作我们一般会采用这种方法进行。但有些情况下,这很烦琐。

因此,可考虑以另一种形式设计类:如

public class Channel {

    private int basicQos=0;
private AMQP.Queue queue;
public Channel()
{} public Channel basicQos(int preCnt)
{
this.basicQos=preCnt;
return this;
}
public Channel queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,
Map<String, Object> arguments)
{
this.queue=createQueue();
return this;
} private AMQP.Queue createQueue()
{
return new AMQP.Queue();
} public void basicPublish(String exchange,byte[] bytes)
{
//doSomething
}
}

所以就可以这样构造,以链的形式,如:

 @Test
public void testChannel()
{
new Channel().basicQos(1).queueDeclare("",true,false,false,null).basicPublish("",new byte[]{1,3,4}); }

最新文章

  1. VS 编辑器扩展辅助工具
  2. Linq 动态查询排序
  3. 如何远程断点调试本地localhost项目
  4. C++学习22 多态的概念及前提条件
  5. 自问自答-hadoop自带哪些案例(0.20.2)
  6. SQL Server调优系列基础篇 - 联合运算符总
  7. android开发之单点触摸
  8. yii2 验证码的使用
  9. Swift--访问级别-备
  10. iOS 获取系统目录
  11. Linux:用at和crontab调度作业
  12. Shiro第六篇【验证码、记住我】
  13. linq的基本使用
  14. AltiumDesigner PCB导入CAD
  15. linux nginx 安装防火墙ngx_lua_waf
  16. VTK中获取STL模型点的坐标以及对其进行变换
  17. Vue实例的的data对象
  18. 深入理解 flex 布局以及计算_Flexbox, Layout
  19. odata.EF一些常用配置
  20. 23、springboot与缓存(1)

热门文章

  1. Tomcat 服务器性能优化
  2. Javascript高级程序设计——面向对象之创建对象
  3. Oracle 中循环遍历某张表,并对符合条件的进行Update操作
  4. iOS企业级开发初级课程-表视图(13集)
  5. 实操UNITY3D接入91SDK安卓版
  6. 内网安全工具之hscan扫描
  7. Android 简易XML解析
  8. ubuntu 出现g++ : Depends: g++-4.8 (&gt;= 4.8.2-5~) but it is not going to be installed
  9. am335x 1G nand 启动Linux qt
  10. python成长之路 :线程、进程和协程