为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Java 配置的 Setter 注入

使用 Java 配置的 Setter 注入

慕桂英4014372 2021-09-29 16:45:12
我有一个 Runnable(即一个实现 Runnable 的类)。有一个 SpringBean,我通过调用它的构造函数来使用这个 Runnable。我想让这个 Runnable 成为一个 Spring Bean。前任。Class RunTest implements Runnable {    Object object;    public RunTest(Object a){        this.object=a;    }    public void run() {        //using attributes of a     }}现在我有一个 Spring Bean@NamedClass TestSpringBean {    public void someMethod(){        Object a;        new RunTest(a)    }}我可以在 TestSpringBean 中注入 RunTestClass 并使用。
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

将类标记RunTest为a @Component,将其实例注入到类中TestSpringBean,完成方法someMethod*中的配置:


@Component

class RunTest implements Runnable {

    public RunTest() {}

}


class TestSpringBean {


    @Autowired

    private RunTest runnable;


    public void someMethod() {

        ...

        runnable.set(a);

    }


}

*请注意,您应该获得一个已经配置好的组件,因此不需要其他配置。这是一个单例实例,所以这里的变化也会反映在其他地方。


换句话说,单身人士应该保持无状态。这就是为什么这个简单的解决方案应该通过找到一种获取完整对象的方法或从任务类中排除该对象来修改的原因。


**您可以将范围更改为"prototype",但 Spring 仍然无法提供完全配置的实例。这就提出了一个问题:Spring 是否应该管理这个类?


***正如@lucumt 所指出的,确保该类对于组件扫描机制是可见的。


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信