xxxxxxxxxx
// 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
}
xxxxxxxxxx
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);
}
}
xxxxxxxxxx
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
}
}
xxxxxxxxxx
import java.util.List;
// Data Access Object
public interface NewsDao {
List findAll(); // List type contains generic News class
News findOne(int id);
}
xxxxxxxxxx
// 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();
}
}