Как получить доступ к экземпляру общего компонента в разных классах, который возвращает целое число - PullRequest
0 голосов
/ 31 января 2020

У меня есть класс конфигурации, в котором я настроил метод Bean, который возвращает целое число, и я передаю этот экземпляр компонента в конструктор еще двух классов. В первом классе я увеличиваю этот метод bean, хотел получить доступ к увеличенному количеству во втором классе. В первом классе экземпляр компонента (Integer) увеличивается, но не сохраняет это значение во втором классе, где я все еще получаю «0» для этого экземпляра компонента. Как я могу сохранить то же значение для второго класса? Базовая область действия по умолчанию - singleton, поэтому об этом позаботятся. Что-то я не так делаю?

@Configuration
public class LineConfig {

 @Bean(name = "getCount")
   public Integer getCount()
    {
        return new Integer(0);
    }

//pls ingnore other logic/syntax as I am focussing only on bean method
 public Step processinvoicejobStep(String fileName,int chunkSize,String jobString) {
           mongoFailedRecordList=new ArrayList<>();
               Step step;       
                  step =  stepBuilderFactory
                        .get("processinvoiceErrjob"+"-"+fileName)
                        .<invoiceWrapper,invoiceWrapper> chunk(chunkSize)
                        .reader(new invoiceReader(container, azureBlobinvoiceErr,azureBlobinvoiceParsingErr))
         **class 1 <----**.writer(new invoiceWriter(mongoConfig.mongoDB().getCollection(collectionName),mongoConfig.mongoDB(),mongoFailedRecordList,fileName,azureBlobinvoiceErr,azureBlobinvoiceErr,objectMapper,enableStats,threadPool,env,container,writeList,**getInsertCount()**))
        **class 2 <----** .listener(new WriterListener(mongoFailedRecordList,env,container,fileName,azureBlobinvoiceErr,errorData(),writeList,**getCount()**)).build();

                return step;
        }
        return null;
    }
...