Over a million developers have joined DZone.

Setting Up Spring Created Beans In Non Spring Created POJO

·
Sometime we have to set up Spring created beans in simple non container created bean .

lets consider that we have to develop an application for creating invoices .
It has to be integrated with different front end systems.And each front-end has different way to create invoices .

Lets have a generic interface - 

 public interface CreateInvoice(){
     public Invoice create();
 }


Now a concrete implementation - 

  public classs CreateInvoiceForTwoDates implements CreateInvoice{
       private Date fromDate ;
       private Date toDate;
       //Spring container created bean 
       @Autowired
       private InvoiceItemRepository invoiceItemRepository;

       public CreateInvoiceForTwoDates(Date fromDate,Date toDate){
             this.fromDate = fromDate;
             this.toDate = toDate;
       }
      public Invoice create(){
          invoiceItemRepositoty.getInvoiceItem(fromDate,toDate);
          //other code
      }
  }


now lets have a factory to create Invoice --

       public class SimpleInvoiceFactory  {
        @Autowired
        org.springframework.beans.factory.config.AutowireCapableBeanFactory beanFactory;

        public createInvoice(InvoiceCreationCriteria criteria){
           CreateInvoiceForTwoDates creatInvoiceForTwoDates = 
           new CreateInvoiceForTwoDates(criteria.fromDate,criteria.toDate);
           
           //Now to set spring created bean InvoiceItemRepository into creatInvoiceForTwoDates
           //we have to do 
           beanFactory.autowire(creatInvoiceForTwoDates);
           creatInvoiceForTwoDates.create();
        }

       }
Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}