Unable to assign autowired child bean to parent object in Spring Boot -


xml config:

<beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xmlns:context="http://www.springframework.org/schema/context"     xsi:schemalocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd     http://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context-2.5.xsd">       <bean class="com.fossians.maven_courses.say_impl" id="id_say_impl" /> </beans> 

say_i

public interface say_i     {         public void say_i_m1();     } 

say_impl

public class say_impl implements say_i     {         public void say_i_m1()             {                 system.out.println("inside : public void say_i_m1() \n");             }     } 

controller :

public class controller_test implements springapplicationcontextinterface     {         @autowired         private say_impl say_impl;          //below line not assigning, need reassign method         private say_i say_i =  (say_i) say_impl; //        private say_i say_i =  (say_i) applicationcontext.getbean("id_say_impl");          @requestmapping(value = "/test10")         public string test1()         {             say_i = say_impl;             system.out.println("say_impl_auto : "+say_impl);             system.out.println("say_i : "+say_i);             say_i.say_i_m1();             return " request value = test10 ";         }       }  public interface springapplicationcontextinterface  {  applicationcontext applicationcontext = new classpathxmlapplicationcontext("beanconfig.xml"); }   @springbootapplication @importresource("classpath:beanconfig.xml") public class courses  extends springbootservletinitializer {     @override     protected springapplicationbuilder configure(springapplicationbuilder application)      {         return application.sources(courses.class);     }  } 

the above code part of spring boot application.

this line of code inside "controller_test" class :

 private say_i say_i =  (say_i) say_impl; 

is not assigning say_impl object "say_impl" reference parent object say_i. if assigning again test1() method working.

but below line of code assigning say_impl reference say_i object.

private say_i say_i =  (say_i) applicationcontext.getbean("id_say_impl"); 

now question is, when taking say_impl object autowiring why need reassign method? there way make working without reassigning?

when taking bean application context need not reassign, why?

very ugly code, legacy xml spring boot wtf?

try this

@autowired private say_i say_i; 

or better:

@springbootapplication public class courses {      public static void main(string[] args) {         springapplication.run(courses.class, args);     }      @restcontroller     public class controller_test {          @autowired         private say_i say_i;          @requestmapping(value = "/test10")         public string test1() {             system.out.println("say_i : " + say_i);             say_i.say_i_m1();             return " request value = test10 ";         }     }         @component     public class say_i {             void say_i_m1() {             system.out.println("inside : public void say_i_m1() \n");         }     }  } 

Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -