summaryrefslogtreecommitdiff
path: root/spring-framework/04-basic-no-xml-java-configuration/src
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-04-25 21:53:33 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-04-25 21:53:33 +0530
commit4afcff940551079617e8f4116e52bb0ef9df7fcc (patch)
treecbaed6a2a53c7d032bfafaa38b94e4fc607f3e76 /spring-framework/04-basic-no-xml-java-configuration/src
parent7b08f1155e1cb8bf263c3570eeb119970407a037 (diff)
Added Spring Framework sample code
Diffstat (limited to 'spring-framework/04-basic-no-xml-java-configuration/src')
-rw-r--r--spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java50
-rw-r--r--spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/Maths.java19
-rw-r--r--spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/MathsUser.java16
3 files changed, 85 insertions, 0 deletions
diff --git a/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java
new file mode 100644
index 0000000..1e613c6
--- /dev/null
+++ b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java
@@ -0,0 +1,50 @@
+package com.example.spring;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class App {
+
+ public static void main(String[] args) {
+ @SuppressWarnings("resource")
+ ApplicationContext ctx = new AnnotationConfigApplicationContext(App.class);
+
+ MathsUser mathsUser = ctx.getBean(MathsUser.class);
+
+ mathsUser.doTask();
+ }
+
+ @Bean
+ public Maths maths() {
+ Maths maths = new Maths();
+ maths.setB(100);
+
+ return maths;
+ }
+
+ @Bean
+ public MathsUser mathsUser() {
+ MathsUser mathsUser = new MathsUser();
+
+ /*
+ * What would the maths() return? Would it be the Spring managed bean or what
+ * would be returned when the maths() method is directly invoked?
+ *
+ * @Bean can be used with classes annotated with @Component tool.
+ *
+ * In a class annotated with @Configuration, maths() return the Spring managed bean.
+ *
+ * In a class annotated with @Component, what is returned by maths() is not the
+ * Spring managed bean, but what would be returned when the maths() method is directly invoked.
+ *
+ * For more details, look at the 'Full @Configuration vs “lite” @Bean mode?' description
+ * found in the 'Core Technologies' section of the Spring Framework Reference documentation.
+ */
+ mathsUser.setMaths(maths());
+
+ return mathsUser;
+ }
+} \ No newline at end of file
diff --git a/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/Maths.java b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/Maths.java
new file mode 100644
index 0000000..b42d32d
--- /dev/null
+++ b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/Maths.java
@@ -0,0 +1,19 @@
+package com.example.spring;
+
+public class Maths {
+
+ private int b;
+
+ public int getB() {
+ return b;
+ }
+
+ public void setB(int b) {
+ this.b = b;
+ }
+
+
+ public int add(int a) {
+ return a + b;
+ }
+}
diff --git a/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/MathsUser.java b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/MathsUser.java
new file mode 100644
index 0000000..aba1836
--- /dev/null
+++ b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/MathsUser.java
@@ -0,0 +1,16 @@
+package com.example.spring;
+
+public class MathsUser {
+
+ private Maths maths;
+
+ public void setMaths(Maths maths) {
+ this.maths = maths;
+ }
+
+ public void doTask() {
+ int result = maths.add(10);
+
+ System.out.println(result);
+ }
+}