summaryrefslogtreecommitdiff
path: root/spring-framework/spring-task-manager-structure/src/main/java/com/example
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-05-10 14:23:46 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-05-10 14:23:46 +0530
commitb1d598a2f02819bc127d0d3522dc7ac91b4dee65 (patch)
treec268db6b49531004e353c5a4ada736bb703a3b96 /spring-framework/spring-task-manager-structure/src/main/java/com/example
parenta299226547b15de587dad614f07ce459d01f3601 (diff)
Added Spring sample application related to structure
Diffstat (limited to 'spring-framework/spring-task-manager-structure/src/main/java/com/example')
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/App.java11
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/Task.java5
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManager.java11
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerApp.java20
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerImpl.java20
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TextUI.java18
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/TaskDAO.java10
-rw-r--r--spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/jdbc/JDBCTaskDAO.java35
8 files changed, 130 insertions, 0 deletions
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/App.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/App.java
new file mode 100644
index 0000000..0df54bc
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/App.java
@@ -0,0 +1,11 @@
+package com.example.spring;
+
+import com.example.spring.task.TaskManagerApp;
+
+public class App {
+ public static void main(String[] args) {
+ // Actually, BankApp is the class with the main method.
+ // It should have been executed directly instead of this class.
+ TaskManagerApp.main(args);
+ }
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/Task.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/Task.java
new file mode 100644
index 0000000..9d112f7
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/Task.java
@@ -0,0 +1,5 @@
+package com.example.spring.task;
+
+public class Task {
+
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManager.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManager.java
new file mode 100644
index 0000000..9e4cbf4
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManager.java
@@ -0,0 +1,11 @@
+package com.example.spring.task;
+
+/**
+ * Business logic operations.
+ * Only method signatures are defined.
+ */
+public interface TaskManager {
+ // Method signatures
+ public void create(Task task);
+
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerApp.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerApp.java
new file mode 100644
index 0000000..0e2c65d
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerApp.java
@@ -0,0 +1,20 @@
+package com.example.spring.task;
+
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class TaskManagerApp {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+
+ AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] {"classpath:META-INF/spring/applicationContext.xml"});
+
+ TextUI ui = ctx.getBean("textUI", TextUI.class);
+
+ ui.start();
+ }
+
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerImpl.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerImpl.java
new file mode 100644
index 0000000..46ca02e
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TaskManagerImpl.java
@@ -0,0 +1,20 @@
+package com.example.spring.task;
+
+import com.example.spring.task.dao.TaskDAO;
+
+public class TaskManagerImpl implements TaskManager {
+
+ private TaskDAO taskDAO;
+
+ public void setTaskDAO(TaskDAO taskDAO) {
+ this.taskDAO = taskDAO;
+ }
+
+ @Override
+ public void create(Task task) {
+ // Actual business logic related to creating a task
+ // ..
+ Task newTask = taskDAO.create(task);
+ // ...
+ }
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TextUI.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TextUI.java
new file mode 100644
index 0000000..7b4676f
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/TextUI.java
@@ -0,0 +1,18 @@
+package com.example.spring.task;
+
+public class TextUI {
+
+ private TaskManager taskManager;
+
+ public void setTaskManager(TaskManager taskManager) {
+ this.taskManager = taskManager;
+ }
+
+ public void start() {
+ System.out.println("Starting TextUI...");
+ //..
+ Task t = new Task();
+ taskManager.create(t);
+ //..
+ }
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/TaskDAO.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/TaskDAO.java
new file mode 100644
index 0000000..3f5ad2b
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/TaskDAO.java
@@ -0,0 +1,10 @@
+package com.example.spring.task.dao;
+
+import com.example.spring.task.Task;
+
+/**
+ * Provide an object view of a data store
+ */
+public interface TaskDAO {
+ public Task create(Task task);
+}
diff --git a/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/jdbc/JDBCTaskDAO.java b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/jdbc/JDBCTaskDAO.java
new file mode 100644
index 0000000..37ced85
--- /dev/null
+++ b/spring-framework/spring-task-manager-structure/src/main/java/com/example/spring/task/dao/jdbc/JDBCTaskDAO.java
@@ -0,0 +1,35 @@
+package com.example.spring.task.dao.jdbc;
+
+import java.sql.Connection;
+
+import javax.sql.DataSource;
+
+import com.example.spring.task.Task;
+import com.example.spring.task.dao.TaskDAO;
+
+/**
+ * Use JDBC API to interact with a DB
+ */
+public class JDBCTaskDAO implements TaskDAO {
+
+ private DataSource dataSource;
+
+ public void setDataSource(DataSource dataSource) {
+ this.dataSource = dataSource;
+ }
+
+ @Override
+ public Task create(Task task) {
+ // Use a DB connection
+ // Connection conn = dataSource.getConnection();
+
+ // Perform an insert
+ // Return a Task object with ID set
+
+ System.out.println("JDBCTaskDAO: inserting a record to DB.");
+ //task.setId(dbTaskId);
+
+ return task;
+ }
+
+}