How to define a Spring bean using annotation instead of XML?
There's documentation regarding this; you'll want a stereotype annotation like @Component
.
this is a simple example that I have just made:
Main.java
package the.test;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.support.AbstractApplicationContext;public class Main {public static void main(String[] args) { AbstractApplicationContext aac = new AnnotationConfigApplicationContext(Person.class, Phones.class); Person person = aac.getBean(Person.class); System.out.println(person.getPhones().getPhoneOne()); System.out.println(person.getPhones().getPhoneTwo()); System.out.println(person.getSurname()); System.out.println(person.getName()); System.out.println(person.getAge()); aac.close(); }}
Person.java
package the.test;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;@Configuration//you may use @ComponentScan("the.test") here and omit declaring //"Phone.class" in the main method public class Person {private int age;private String name;private String surname;private Phones phones;public int getAge() { return age;}@Value("33")public void setAge(int age) { this.age = age;}public String getName() { return name;}@Value("John")public void setName(String name) { this.name = name;}public String getSurname() { return surname;}@Value("Due")public void setSurname(String surname) { this.surname = surname;}public Phones getPhones() { return phones;}@Resourcepublic void setPhones(Phones phones) { this.phones = phones;}}
Phones.java
package the.test;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;@Configurationpublic class Phones {private String PhoneOne;private String PhoneTwo;public String getPhoneOne() { return PhoneOne;}@Value("987654321")public void setPhoneOne(String phoneOne) { PhoneOne = phoneOne;}public String getPhoneTwo() { return PhoneTwo;}@Value("123456")public void setPhoneTwo(String phoneTwo) { PhoneTwo = phoneTwo;}}
this is completely based on Spring Annotation and is made on spring framework 4.2.5
hope it helps.