相关疑难解决方法(0)

如何使用spring java配置在单例bean中生成原型对象

这就是我现在的工作正常.它所做的只是一个返回项目对象数组的市场类:

我有上课的市场

class market {

    public ArrayList<Items> createItems(HashMap<String,String> map) {
        ArrayList<Items> array = new ArrayList<Items>();
        for (Map.Entry<String, String> m : map.entrySet()) {
            Item item = new Item();
            item.setName(m.key());
            item.setValue(m.value());
            array.add(item);
        }
        return array;
    }
}
Run Code Online (Sandbox Code Playgroud)

class Item是带有getter和setter的名称和值的简单类

以下是我的配置文件的外观:

@Configuration
public class MarketConfig {

    @Bean
    public Market market() {
        return new Market();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想如何改变我的代码:(原因:我不想要

Item item = new Item(); 
Run Code Online (Sandbox Code Playgroud)

在那时的方法.我希望Spring将它注入市场)

class market {

    public Item item;
    //getters and setters for item

    public ArrayList<Items> createItems(HashMap<String,String> map) {
        ArrayList<Items> array = new …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc java-ee

6
推荐指数
2
解决办法
2万
查看次数

如何在没有applicationContext的Spring服务类中请求Prototype bean

我有一个使用原型范围定义的组件。我想在我的服务类中使用该组件。我希望 spring 在每次我调用它时都能为我提供该 Bean 的一个新实例。

组件类别:

@Getter
@Setter
@Component
@Scope("prototype")
public class ProtoTypeBean {
  //.. Field variables
}
Run Code Online (Sandbox Code Playgroud)

服务等级:

@AllArgsConstructor
@Service
public class ServiceClass {
    ProtoTypeBean prototypeBean;
    ArrayList<ProtoTypeBean> prototypeBeans;
    public void demoMethod(ArrayList<String> someArrayList) {

        for(var singleString: someArrayList) {
            prototypeBean.setFieldValue(singleString);

            prototypeBeans.add(prototypeBean);              
        }
        System.out.println(prototypeBeans.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

通过使用此配置,我在原型Beans ArrayList 中获得了相同的 ProtoTypeBean 实例。问题是,我如何让 Spring 理解每次在 foreach 循环中调用它时都会给我一个 prototypeBean 的新实例?我发现我可以使用 ApplicationContext.getBean() 在 foreach 循环中获取 Bean 的新实例,但我也听说这是一个不好的做法。请帮助我进行最佳实践。

java oop spring dependency-injection spring-boot

3
推荐指数
1
解决办法
4259
查看次数