spring injection works within user created instance?

I'm working with Spring, and I'm getting the injected instance as null when I create the instance with new operator, I can elobrate the scenario.

For example, Let the class A and class B are injected into the class Main


      class Main
         {
       @autowired
      A a;
        @autowired
       B b;

    //getter and setter
   }

class MainExecute
{
 public static void main()
 {
   // loading the spring config xml 
 Main main = new  Main();
 A a=main.getA();
  // whether a will get the instance  ( I'm getting a as null) 

 }

what could be the reason for this scenario Please guide me on the same

Thanks in advance.

Upvotes: 0

Views: 133

Answers (2)

Derek Gourlay
Derek Gourlay

Reputation: 279

To elaborate on the above answers:

You need to let the spring IOC container create your objects for you, you don't explicitly create them. You can do this by creating a spring config xml file, here is a quick example:

META-INF\spring\my-spring-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="myMainClass" class="org.foo.Main" />
<bean id="myA" class="org.foo.A" />
<bean id="myB" class="org.foo.B" />

</beans>

org.foo.MainExecute:

class MainExecute
{
 public static void main()
 { 

  ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("META-INF\\spring\\my-spring-config.xml");
  Main main = (Main) appContext.getBean("myMainClass");

   }
}

In this example the Spring IOC container will instantiate an "A" bean and a "B" bean. It will then autowire these into the "Main" bean.

Upvotes: 4

Arun P Johny
Arun P Johny

Reputation: 388316

No, it won't get dependency injection.

Only objects created/managed by the spring container will get the facilities offered by spring dependency injection.

Upvotes: 5

Related Questions