BeeOP 0.6 发布,代码重构后优化

来源: 投稿
作者: 欧德
2021-02-23

小蜜蜂对象池是一款轻量级Java池化工具

  坐标(Java7)

<dependency>
   <groupId>com.github.chris2018998</groupId>
   <artifactId>beeop</artifactId>
   <version>0.6</version>
</dependency>

更新内容

1:优化对象接口反射调用

2:对象句柄中增加无参调用方法

3:增加方法调用屏蔽处理(比如原生对象上的关闭方法,配置后可阻止用户对原生对象发起关闭)

项目地址

国内地址: https://gitee.com/mirrors/BeeOP

国外地址: https://github.com/Chris2018998/BeeOP

参考例子1

//定义接口
public interface Book {
    public String getName();
    public long getNumber();
}
//定义对象
public class JavaBook implements Book{
    private String name;
    private long number;
    public JavaBook() {
        this("Java核心技术·卷2", System.currentTimeMillis());
    }
    public JavaBook(String name, long number) {
        this.name = name;
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public long getNumber() {
        return number;
    }
    public String toString() {
        return name;
    }
}
//定义对象工厂
public class JavaBookFactory implements BeeObjectFactory {
    public Object create(Properties prop) throws BeeObjectException {
        return new JavaBook("Java核心技术·卷1", System.currentTimeMillis());
    }
    public void setDefault(Object obj) throws BeeObjectException { }
    public void reset(Object obj) throws BeeObjectException { }
    public void destroy(Object obj) { }
    public boolean isAlive(Object obj, long timeout) {
        return true;
    }
}
//测试代码
public class TestBookPool{
  public static void main(String[]){
      BeeObjectSourceConfig config = new BeeObjectSourceConfig();
      config.setObjectFactory(new JavaBookFactory());
      config.setObjectInterfaces(new Class[]{Book.class});
      BeeObjectSource obs = new BeeObjectSource(config);
      
      BeeObjectHandle handle = null;
      try {
           handle = obs.getObject();
           Object v=handle.call("getName");
           System.out.println("Book name:"+v);
          
          /**
           * 或者这样使用
           * Book book = (Book)handle.getProxyObject();
           * System.out.println(book.getName());
           */
       } catch (BeeObjectException e) {
       } finally {
           if (handle != null)
               handle.close();
       }
    }
}

参考例子2

 Influxdb客户端池化例子

https://my.oschina.net/u/3918073/blog/4958402

展开阅读全文
3 收藏
分享
加载中
精彩评论
mark下
2021-02-23 23:27
1
举报
最新评论 (3)
热烈欢迎提出宝贵建议!有定制需求的朋友请留言。
2021-02-24 18:37
0
回复
举报
mark下
2021-02-23 23:27
1
回复
举报
谢谢啦👍
2021-02-24 09:31
0
回复
举报
更多评论
3 评论
3 收藏
分享
返回顶部
顶部