首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring boot中的代理FactoryBean实现

Spring boot中的代理FactoryBean实现
EN

Stack Overflow用户
提问于 2020-07-06 20:03:33
回答 1查看 190关注 0票数 0

我想实现FactoryBean接口来初始化我的bean。但我想将代理对象注入到我的服务中。

代码语言:javascript
运行
复制
@Configuration
public class SomeContextFactory implements FactoryBean<SomeClass>
{
  //implementation
}

我应该如何为代理对象更改此代码?(Spring boot,无xml)

我需要通过getObject()动态生成对象,并将这些对象注入到某个单例服务中。

附加:使用我的自定义范围(或原型范围)

EN

Stack Overflow用户

发布于 2020-07-06 21:42:53

假设你有SomeClassSomeContextFactory

代码语言:javascript
运行
复制
public class SomeClass {

    private int id;

// Setter
// Getter
// All args contructor
}


public class SomeContextFactory implements FactoryBean<SomeClass>
{
    private int someClassId;
 
    @Override
    public SomeClass getObject() throws Exception {
        return new SomeClass(someClassId);
    }
 
    @Override
    public Class<?> getObjectType() {
        return SomeClass.class;
    }
 
    @Override
    public boolean isSingleton() {
        return true; // for singleton scope
    }

  //  @Override
  //  public boolean isPrototype() {
  //     return true; // for prototype scope
  // }


// Setter
// Getter

}

现在,你必须告诉spring-boot关于FactoryBean的事情

代码语言:javascript
运行
复制
@Configuration
public class FactoryBeanAppConfig {
  
    @Bean
    public SomeContextFactory someContextFactory() {
        SomeContextFactory factory = new SomeContextFactory();
        factory.someClassId(5);
        return factory;
    }
 
    @Bean
    public SomeClass someClass() throws Exception {
        return someContextFactory().getObject();
    }
}

最后,您的Bean SomeClass已准备好注入:

代码语言:javascript
运行
复制
@Service
public class SomeService implements ISomeService{

@Autowired 
private SomeClass someClass;

public void useSomeClassAndPerformAction(){
 // implementation...
 }
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62755685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档