// A simple dependency class public class Dependency { public void performAction() { System.out.println("Action performed by Dependency"); } } // Service class without dependency injection public class MyService { private final Dependency dependency; // Constructor creating an instance of Dependency internally public MyService() { this.dependency = new Dependency(); } public void doSomething() { // Using the internally created dependency dependency.performAction(); } } // Main application class public class MyApp { public static void main(String[] args) { // Creating an instance of MyService MyService myService = new MyService(); // Using the MyService instance myService.doSomething(); } }public interface SomeInterface{ public int someMethod(); } public class Independent implements SomeInterface{ @Override public int someMethod(){ return 2; // Your logic } } public class Dependent{ private SomeInterface someObj; public Dependent(SomeInterface someObj){ // Receiving constructor dependency this.someObj = someObj; } public void injectionMethod(SomeInterface someObj){ // Receiving method dependency var x = someObj.someMethod(); System.out.println(x); } public void setValue(SomeInterface someObj){ // Receiving setter dependency this.someObj = someObj; // NOT "someObj = new Independent();" } } class Main { public static void main(String[] args) { var independentObj = New Independent(); // Main class is acting as an injector class var dependentObj = New Dependent(independentObj); // Injecting constructor dependency dependentObj.setValue(new Independent()); // Injecting setter dependency dependentObj.injectionMethod(new Independent()); // Injecting method dependency } }import java.util.List; // Controller public class NewsController { // Internal reference to the service used by this client private NewsServices newsServices; public NewsController(NewsServices newsServices){ // Constructor injection this.newsServices = newsServices; } // Injected Methods public List getAll() { return newsServices.findAll(); } public News getOne(int id){ return newsServices.findOne(id); } }import java.util.List; // Data Access Object public interface NewsDao { List findAll(); // List type contains generic News class News findOne(int id); }// Entity public class News { private int id; private String title; private String description; private boolean deleted; public News(String title,String description){ this.title = title; this.description = description; } // getter setter etc }