diff --git a/injecting-beans/pom.xml b/injecting-beans/pom.xml new file mode 100644 index 0000000000..db3d4c4c20 --- /dev/null +++ b/injecting-beans/pom.xml @@ -0,0 +1,32 @@ + + 4.0.0 + com.baeldung.common + SpringExample + jar + 1.0-SNAPSHOT + SpringExample + http://maven.apache.org + + + + junit + junit + 4.12 + test + + + + + org.springframework + spring-core + 4.1.4.RELEASE + + + org.springframework + spring-context + 4.1.4.RELEASE + + + + diff --git a/injecting-beans/src/main/java/com/baeldung/App.java b/injecting-beans/src/main/java/com/baeldung/App.java new file mode 100644 index 0000000000..2afc005c76 --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/App.java @@ -0,0 +1,16 @@ +package com.baeldung; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * Application presenting various possibilities of bean injections in Spring. + */ +public class App { + public static void main(String[] args) { + ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Module.xml"); + + Computer obj = (Computer) context.getBean("computer"); + obj.print(); + } +} diff --git a/injecting-beans/src/main/java/com/baeldung/Computer.java b/injecting-beans/src/main/java/com/baeldung/Computer.java new file mode 100644 index 0000000000..b9551ad34d --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/Computer.java @@ -0,0 +1,55 @@ +package com.baeldung; + +import com.baeldung.model.*; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * Model for Computer. + */ +public class Computer { + + @Autowired + private GraphicsCard graphicsCard; + private Processor processor; + private HardDisk hardDisk; + private Screen screen; + private OperatingSystem operatingSystem; + + public Computer(Processor processor) { + this.processor = processor; + } + + @Autowired + public Computer(OperatingSystem operatingSystem, Processor processor) { + this.operatingSystem = operatingSystem; + this.processor = processor; + } + + public void setHardDisk(HardDisk hardDisk) { + this.hardDisk = hardDisk; + } + + @Autowired + public void setScreen(Screen screen) { + this.screen = screen; + } + + public void print() { + System.out.println("Injected processor by constructor injection: " + processor.getName()); + System.out.println("Injected hard disk by setter injection: " + hardDisk.getName()); + System.out.println("Injected graphics card with field annotation: " + graphicsCard.getName()); + System.out.println("Injected screen with setter annotation: " + screen.getSize()); + System.out.println("Injected operating system name with constructor annotation: " + operatingSystem.getName()); + } + + @Override + public String toString() { + return "Computer{" + + "graphicsCard=" + graphicsCard + + ", processor=" + processor + + ", hardDisk=" + hardDisk + + ", screen=" + screen + + ", operatingSystem=" + operatingSystem + + '}'; + } +} diff --git a/injecting-beans/src/main/java/com/baeldung/model/GraphicsCard.java b/injecting-beans/src/main/java/com/baeldung/model/GraphicsCard.java new file mode 100644 index 0000000000..70bec9b1cd --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/model/GraphicsCard.java @@ -0,0 +1,23 @@ +package com.baeldung.model; + +/** + * Model for graphics card. + */ +public class GraphicsCard { + String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "GraphicsCard{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/injecting-beans/src/main/java/com/baeldung/model/HardDisk.java b/injecting-beans/src/main/java/com/baeldung/model/HardDisk.java new file mode 100644 index 0000000000..2117fb67a1 --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/model/HardDisk.java @@ -0,0 +1,23 @@ +package com.baeldung.model; + +/** + * Model for hard disk drive. + */ +public class HardDisk { + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "HardDisk{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/injecting-beans/src/main/java/com/baeldung/model/OperatingSystem.java b/injecting-beans/src/main/java/com/baeldung/model/OperatingSystem.java new file mode 100644 index 0000000000..296445e60b --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/model/OperatingSystem.java @@ -0,0 +1,23 @@ +package com.baeldung.model; + +/** + * Model for operating system. + */ +public class OperatingSystem { + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "OperatingSystem{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/injecting-beans/src/main/java/com/baeldung/model/Processor.java b/injecting-beans/src/main/java/com/baeldung/model/Processor.java new file mode 100644 index 0000000000..ef41b15902 --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/model/Processor.java @@ -0,0 +1,23 @@ +package com.baeldung.model; + +/** + * Model for Processor. + */ +public class Processor { + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "Processor{" + + "name='" + name + '\'' + + '}'; + } +} diff --git a/injecting-beans/src/main/java/com/baeldung/model/Screen.java b/injecting-beans/src/main/java/com/baeldung/model/Screen.java new file mode 100644 index 0000000000..08b5da0550 --- /dev/null +++ b/injecting-beans/src/main/java/com/baeldung/model/Screen.java @@ -0,0 +1,24 @@ +package com.baeldung.model; + +/** + * Model for Screen. + */ +public class Screen { + + private String size; + + public String getSize() { + return size; + } + + public void setSize(String size) { + this.size = size; + } + + @Override + public String toString() { + return "Screen{" + + "size='" + size + '\'' + + '}'; + } +} diff --git a/injecting-beans/src/main/resources/Spring-Module.xml b/injecting-beans/src/main/resources/Spring-Module.xml new file mode 100644 index 0000000000..cb0b4c0589 --- /dev/null +++ b/injecting-beans/src/main/resources/Spring-Module.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file