Magician-Containers 1.0.0 发布, Magician 家族又添一位新成员 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Joker123456789
V2EX    Java

Magician-Containers 1.0.0 发布, Magician 家族又添一位新成员

  •  
  •   Joker123456789 2022-07-13 13:29:54 +08:00 1312 次点击
    这是一个创建于 1193 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在使用 Magician 开发项目的过程中,发现了一些问题,有时候想对某些方法做监听,或者 想启动一个定时任务做轮询,会比较麻烦一点,因为 Magician 暂时没有应的解决方案,但是 我又不想在现有的 Magician 里添加功能,因为这样会让项目变得越来越大,最后逐渐变成一个大胖子,失去灵活性,开发者在使用的时候,不管需不需要的功能 都会被一股脑的引入到项目中,这是我无法接受的。 而且也违背了 Magician 一开始的初衷,所以最后我们决定以一个新组建的形式来发布。 把用不用的权利 交给用户。

    Magician-Containers 带来了什么

    1. Bean 管理(没有 IOC ,只是为了在 bean 上面绑定功能,解决一些麻烦)
    2. AOP
    3. 定时任务

    Bean 管理

    在类上面加一个注解即可,不可以用在 controller 上,也不是所有的类都需要变成一个 bean ,开发者可以随意决定。

    我们推荐,在你需要在这个类里面使用 AOP 或者定时任务的时候,才把它变成一个 bean 。

    @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() { } } 

    定时任务

    目前只支持 按照间隔轮询,还不支持 cron 表达式

    @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); 

    访问官网了解更多:https://magician-io.com

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     881 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 22:27 PVG 06:27 LAX 15:27 JFK 18:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86