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
Post a Comment