NutzCN Logo
问答 如何在父类中指定@IocBean时create调用的函数
发布于 946天前 作者 qq_923fb786 969 次浏览 复制 上一个帖子 下一个帖子
标签:

描述

以下代码中是否可以实现在父类中指定调用afterPropertiesSet函数,不用每个实现的子类来指定create。

代码

// 这个是父类
public abstract class BaseView {
    protected abstract void initUi();
    protected abstract void initAttr();
    protected abstract void initLayout();
    protected abstract void initEvent();
    protected abstract void initialize();

    public void afterPropertiesSet() {
        initUi();
        initAttr();
        initLayout();
        initEvent();
        initialize();
    }
}

有多个子类,但是每个子类都需要@IocBean指定create = afterPropertiesSet才能调用该函数该函数。
```java
@IocBean(create = "afterPropertiesSet")
public class MainView extends BaseView {
......
}

@IocBean(create = "afterPropertiesSet")
public class ConfigView extends BaseView {
......
}
```

4 回复
@IocBean(create = "afterPropertiesSet")
public class MainView extends BaseView {
......
}

@IocBean(create = "afterPropertiesSet")
public class ConfigView extends BaseView {
......
}

注解没有继承,所以抱歉,还是得加

e,好像有继承。这个我解决了,我只要在父类上加@IocBean(create = "afterPropertiesSet"),然后子类上不加@IocBean就可以了。
我看了下@IocBean的源码,发现是有@Inherited的。
```java
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface IocBean {
...
}

```

哦, 子类不写@IocBean的确ok, 但父类一定不能写name=XXX

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