当前位置: 首页 > 软件库 > 云计算 > PaaS系统/容器 >

Magician-Containers

容器管理模块
授权协议 MIT
开发语言 Java
所属分类 云计算、 PaaS系统/容器
软件类型 开源软件
地区 国产
投 递 者 童琪
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Magician-Containers 是 Magician 的官方组件,一个容器管理模块,可以对项目中的bean进行统一管理,它带来了两个扩展:AOP 和定时任务。

文档

https://magician-io.com

示例

导入依赖

<!-- This is the jar package build by this project -->
<dependency>
    <groupId>com.magician.containers</groupId>
    <artifactId>Magician-Containers</artifactId>
    <version>1.0.0</version>
</dependency>

<!-- This is Magician -->
<dependency>
    <groupId>com.github.yuyenews</groupId>
    <artifactId>Magician</artifactId>
    <version>2.0.5</version>
</dependency>

<!-- This is the log package, which supports any package that can be bridged with slf4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.12</version>
</dependency>

标记Bean

不可以用在Controller上

@MagicianBean
public class DemoBean {

}

Aop

编写AOP的逻辑

public class DemoAop implements BaseAop {

    /**
     * 方法执行前
     * @param args 方法的参数
     */
    public void startMethod(Object[] args) {

    }

    /**
     * 方法执行后
     * @param args 方法的参数
     * @param result 方法的返回数据
     */
    public void endMethod(Object[] args, Object result) {

    }

    /**
     * 方法出异常后
     * @param e 方法的异常信息
     */
    public void exp(Throwable e) {

    }
}

挂到需要监听的方法上

@MagicianBean
public class DemoBean {

    @MagicianAop(className = DemoAop.class)
    public void demoAopMethod() {

    }
}

定时任务

@MagicianBean
public class DemoBean {

    // loop: 轮训频率,单位:毫秒
    @MagicianTimer(loop=1000)
    public void demoTimerMethod() {

    }
}

获取Bean对象

@MagicianBean
public class DemoBean {

    private DemoBean demoBean;

    public void demoMethod() {
        demoBean = BeanUtil.get(DemoBean.class);
    }
}

启动时加载资源

HttpServer httpServer = Magician
        .createHttp()
        .scan("com.test"); // Scanning range (package name)

// 在scan方法执行后,才可以加载bean,顺序一定要注意
MagicianContainers.load();

httpServer.bind(8080);

 

  • 【container】 Adobe?Flex?provides a wide variety of containers,ranging from simple boxes through panels and forms, to elements such as accordions or tabbed navigators that provide built-in navigation am

  • The application PDBs and application root can share application common objects. There are three types of application common objects: Metadata-linked application common objects store the metadata for s

  • 容器Containers Qt 提供了顺序存储容器:QList,QLinkedList,QVector,QStack和QQueue。对于绝大多数应用程序,QList是最好的选择。虽然它是基于数组实现的列表,但它提供了快速的向前添加和向后追加的操作。如果你需要链表,可以使用QLinkedList。如果你希望所有元素占用连续地址空间,可以选择QVector。QStack和QQueue则是 LIFO 和

  • sequentail Containers QVector<T> array-like data structure(在尾部插入数据时效率很高,而在中间和头部插入数据时开销很大)。 QVector提供了[]运算符 QVector可以用<<运算符代替append()函数。 QVector中的基本类型及指针被初始化为0。 QLinkedList<T> QLinkedList不提供[]运算符,所以必须通

  • Magician-Web3 是一个区块链开发工具包。它由两个功能组成。一个是扫描区块链,根据开发者的需要监控交易。另一个是对 web3j 的一些二次打包,可以减少开发者在一些常见场景下的工作量。它计划支持三种链,ETH(BSC、POLYGAN 等)、SOL 和 TRON 本次更新的点 加入了负载均衡,只要配置多个 RPC URL 即可自动轮询,可以将流量分散给多个节点,不用一直盯着一个节点 “祸害

  • #include <ros/ros.h> #include <moveit/move_group_interface/move_group_interface.h> #include <iostream> using namespace std; int main(int argc, char** argv)\ { //初始化ROS节点 ros::init(argc, argv, "mag

 相关资料
  • Ext JS中的容器是我们可以添加其他容器或子组件的组件。 这些容器可以具有多个布局以将组件布置在容器中。 我们可以从容器及其子元素中添加或删除组件。 Ext.container.Container是Ext JS中所有容器的基类。 Sr.No 描述 1 Container内的组件 此示例显示如何定义容器内的组件 2 容器内容器 此示例显示如何使用其他组件在容器内定义容器 有各种类型的容器Ext.p

  • 容器是AWT GUI组件的组成部分。 容器提供可以定位组件的空间。 AWT中的Container本身就是一个组件,它增加了向自身添加组件的功能。 以下是值得考虑的重点。 Container的子类称为Containter。 例如Panel,Frame和Window。 容器只能将Component添加到自身。 每个容器中都存在一个默认布局,可以使用setLayout方法覆盖它。 Sr. No. 容器和

  • 容器是SWING GUI组件的组成部分。 容器提供可以定位组件的空间。 AWT中的Container本身就是一个组件,它提供了向自身添加组件的功能。 以下是需要考虑的一些值得注意的要点。 Container的子类称为Container。 例如,JPanel,JFrame和JWindow。 Container只能向自身添加一个Component。 每个容器中都存在一个默认布局,可以使用setLayo

  • PyGTK库提供了不同的容器类来控制窗口中窗口小部件的放置。 最简单的方法是使用fixed container class并通过指定以像素为单位测量的绝对坐标将小部件放入其中。 现在让我们按照以下步骤 - Step 1 - 声明fixed class的对象 fixed = gtk.Fixed() Step 2 - 创建一个按钮小部件,并使用需要x和y坐标的put()方法将其添加到固定容器中。 这

  • 要在应用程序中使用Flexbox,您需要使用display属性创建/定义Flex容器。 Usage - display: flex | inline-flex 此属性接受两个值 flex - 生成块级弹性容器。 inline-flex - 生成内联flex容器框。 现在,我们将看到如何使用display属性和示例。 Flex 将此值传递给display属性时,将创建块级Flex容器。 它占用父容

  • 一个无序容器实际上就是某种形式的蛤希表。C++0x提供四种标准的无序容器: unordered_map unordered_set unordered_multimap unordered_multiset 实际上,它们应该被称为hash_map等。但是因为有很多地方已经在使用hash_map这样的名字了,为了保证其兼容性,标准委员会不得不选择新的名字。而unordered_map是我们所能够找到