title: @Autowired not working inside a runnable
body: <p>I have a runnable task where i am trying to Autowire  field but when i do it the task doesn't run .
  When i Autowire the field outside the runnable it works fine . Why is this happening ? Also is there any other cleaner way to get new instances of a autowired field inside runnable other than Autowiring it inside  ?</p>
  
  <p>Here's my runnable method `</p>
  
  <pre><code>Runnable task = new Runnable() {
  
                  @Autowired
                  ICruxPanelClientService CruxPanelClientService;
  
                  public void run (){
              CruxPanelClientService.setCruxWebServiceBaseURL("http://10.41.181.23:8080");
              CronCruxModel m = new CronCruxModel();
              m = model1.get(model_var);
              System.out.println("EXECUTING");
              System.out.println(m.getService_status() + " ---------EXEexecution");
              System.out.println(m.getCat_name() + "Executing Name ");
          //  time = m.getService_time();
              UpdateCategoryRequest updateCategoryRequest = new UpdateCategoryRequest();
              CategoryModel categoryModel = new CategoryModel();
              categoryModel.setColor(m.getCat_color());
              categoryModel.setIcon(m.getCat_icon());
              categoryModel.setIconWhite(m.getCat_icon_white());
              categoryModel.setName(m.getCat_name());
              categoryModel.setId(m.getCat_id());
              categoryModel.setKey(m.getCat_catkey());
              categoryModel.setIndexOrder(m.getCat_indexOrder());
              updateCategoryRequest.setCategory(categoryModel);
              CruxPanelClientService.updateCategory(updateCategoryRequest);
              GetServiceDataIdByCategoryIdRequest request1 = new GetServiceDataIdByCategoryIdRequest();    
              request1.setId(m.getCat_id());
              GetServiceDataIdByCategoryIdResponse response1 = CruxPanelClientService.getServiceDataIdByCategoryId(request1);
              ArrayList&lt;ServiceModel&gt; service = new ArrayList&lt;ServiceModel&gt;();
              service = response1.getServiceModels();
  
              JSONArray json = new JSONArray();
              if(m.getService_order_succ_msg()==null)
              {
                  json = new JSONArray();
              }
              else {
  
                   json = new JSONArray(m.getService_order_succ_msg());
              }
              String message = m.getService_order_succ_msg();
  
              for (int j=0;j&lt;service.size();j++)
              {   
                  UpdateServiceMasterRequest req = new UpdateServiceMasterRequest();
                  ServiceModel s = new ServiceModel();
                  s=service.get(j);
                  ;
                  JSONObject obj = new JSONObject();
  
                  if(json.length()==0 ) 
                  {
                      String ms = null;
                      s.setOrderSuccessMessage(ms);
                      req.setServiceModel(s);
  
                  }
  
                  else {
  
                      String message1 = json.get(j).toString();
  
                      if(message1.equals(null) || message1.equals("")) {
                          String ms = null;
                          s.setOrderSuccessMessage(ms);
                          req.setServiceModel(s);
  
                      }
                      else {
                          s.setOrderSuccessMessage(message1);
  
                          req.setServiceModel(s);
  
                      }
                  }
                  CruxPanelClientService.updateServiceMaster(req);
  
              }
              m.setService_status("executed");
              UpdateCronCruxRequest q = new UpdateCronCruxRequest();
              q.setCronCruxModel(m);
              CruxPanelClientService.updateCronCrux(q);
  
                  }
              };`
  </code></pre>