NutzCN Logo
问答 在进入@At方法前想先执行一个初始化的方法有没有什么方法
发布于 2143天前 作者 LjieJJJJJJJ 2329 次浏览 复制 上一个帖子 下一个帖子
标签:

在每次进入@At方法前想先执行一个初始化的方法有没有什么解决方法
初始化的方法中是为了给接口动态的绑定实现类
如果不用初始化的方法的情况下有没有什么其他的方法可以解决这个问题,求指教各位大佬

17 回复

动作链了解一下,可以做到的,文档有

兽总,恕我愚钝,没看到怎么解决,麻烦指导一下可以么

@Override
	public void process(ActionContext context) throws Throwable {
		Mirror<?> mirror = Mirror.me(context.getModule().getClass());
		Object init = mirror.born();
		mirror.invoke(init,"init");
		doNext(context);//这个其实应该走的是test方法
	}

你好啊我进入init方法了null
你好啊我进入init方法了null

@wendal 这其实应该是一次进入init 一个进入test 可是结果缺是两次都进入了init方法,这是为什么

没进入口方法?

话说,如果真是init方法,应该只执行一次吧?

业务上init方法应该只执行一次吧?

我又重启了一下,貌似又好了,,好尴尬 我现在对标题的问题这么处理应该可以吧不会有其他影响吧

Mirror<?> mirror = Mirror.me(context.getModule().getClass());
		Object init = mirror.born();
		mirror.invoke(init,"init");
		context.setModule(init);
		doNext(context);

为啥要新建一个模块对象??

这个不是iocBean(create = "init") 是我自己写的一个需要每次都执行的一个init方法 @wendal

这是要做啥呢?每次请求新建一个对象来处理? 那直接把模块设置成非单例就行啦

@wendal 因为我想每次的时候都调用那个init方法然后将我类的东西根据参数来初始化好,先通过mirror 执行了init 后 也就当前类中参数已经执行好了然后将类给context的module 这样在执行test 的时候环境也就是我已经初始化好的环境了。。 不知道这样会不会有问题,想半天才想到这样的。。

就为了跑测试呀?

@wendal 项目里有需要用到这样的场景 无奈才想到的办法 兽总可有其他的好的方法 我可以改下 我技术还不行怕有问题 哈哈

改成非单例,就完事了

哈哈 好的 我试下 感觉兽总

添加回复
请先登陆
回到顶部