@Autowired not working inside a runnable
<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>