Skip to main content

Dependency Injection in Action

Dependency Injection, one of the most talked topic in developers world.. I discussed about Dependency Injection in my earlier post, so if you haven't read it then I suggest that you should read it first.
In this post I am going to describe how dependency injection works..

Dependency injection is basically creating object and setting property of that object which are described in configuration.
Object can be created using default constructor or constructor with argument or by factory method.
Real time example for this is loading jdbc drivers using Class.forName, using forName we get the class object associated with class name that we provide.
We are using reflection over here, now if you don't know much about reflection, I again suggest you to read my earlier post on Reflection.
Now using same method we can create new object for specified class as follows,

Object someObject=Class.forName("classname_with_complete_packagename").newInstance();

Now next part is to set property values for this object, which can be done using setter method or using fields by using reflection.
By Java coding convention we know that if the field name is "width" then its setter method must be "setWidth(datatype value)", so we can use this setter method to set value for this property.
So how to do this??
Here is an example, following example shows how you can set value for a property using Field class in reflection.

Field field=someObject.getClass().getField("someFieldName");

With this post I have attached source code for very simple dependency injection framework named Diol i.e. Dependency Injected Object Loader..

In Diol only one interface is there Diol itself,

public interface Diol{

In this interface there is only one method,

public interface Diol{
     public Object getObject(String name);

This method returns requested object by name which is there is object map.
One implementation class FileSystemDiol is there which implements Diol and can be used to load xml configuration from file system.
Zip attached contains source code for Diol which can be opened in eclipse.
Download Links for Diol
1. Diol


Popular posts from this blog

Spring AOP : JDK Proxy vs CGLib Proxy

Spring framework is one of the most widely used framework in Enterprise application development. It has so many features such as Dependency injection, Data access integration, MVC, AOP which takes care of most of the boilerplate part of project, and developers can then focus on business logic only.

One of the important feature in Spring is AOP. It is used by almost every enterprise application which is being developed using Spring.

AOP So what is AOP? Definition of AOP -
Aspect oriented programming is a programming paradigm which aims to increase modularity by allowing the separation of cross cutting concerns. Well, my understanding of AOP is - AOP allows us to introduce/join new modules in your project at pre-specified dynamic locations without having to code for it. Traditional examples of AOP is Transaction management, logging etc. You can read more about AOP at here.

This article is for those who know AOP, have used AOP in their projects but do not know how Spring or other DI fra…

Java Tools Plugin for Notepad++

This post and the plugin is outdated. Please use plugin from this link which is updated and allows customization of shortcut key mappings and much more.
Notepad++ is a great free editor. I like notepad++ because its a light weight editor and loads instantly. I use notepad++ for editing many files everyday. One plugin I always wanted was a plugin which lets me compile my java files and execute them from editor itself, but I couldn't find it so I wrote a myself. This plugin can be downloaded from this link.
I am working on this plugin to make it more effective, so that if user have more than one installations of JDK or JRE then user should be able to choose which one to use etc.
This is a simple plugin which has two commands-
Compile - compiles a java file.
Run - executes a java file.
For using this plugin Java must be installed on the system.

Notepad++ Compile and Run Java Programs

Notepad++ is a great file editor. It has many features. The most important feature which I like about Notepad++ is its light weight. It loads up so quickly, that's great. It also provides syntax highlighting for many languages. I use notepad++ to edit general files as well as my simple Java programs.
Although notepad++ provides functionality to run external programs, I prefer NppJavaTools plugin to compile and run Java programs using notepad++.
You can download NppJavaTools plugin from this page - NppJavaTools.

Installation of plugins in notepad++ is very simple process. All you have to do is copy plugin dll into plugins folder of notepad++ installation directory and restart the notepad++.

This plugin provides following features,

Compile and run your Java files within Notepad++Set custom hotkeys for compiling and running Java CodeLibrary support Compile and RunThis function allows you to run your Java programs to compile and run from Notepad++. Set Custom hotkeysThi…