- 1,670 hits
Apache James Mail Server Configuration.
Beginning with JDK 5, enumerations were added to the Java language, and they are now an integral and widely used part of Java. In their simplest form, Java enumerations appear similar to enumerations in other languages. However in Java, an enumeration defines a class type. By making enumerations into classes, the capabilities of the enumeration are greatly expanded. For example, in Java, an enumeration can have constructors, methods, and instance variables.
Singleton pattern is one of the commonly used design solution. It describes a technique for ensuring that only a single instance of a class is ever created. In essence, the technique takes the following approach: don’t let anyone outside the class create instances of the class.
Singletons often control access to resources such as database connections or sockets. For example, if you have a license for only one connection for your database or your JDBC driver has trouble with multithreading, the Singleton makes sure that only one connection is made or that only one thread can access the connection at a time. If you add database connections or use a JDBC driver that allows multithreading, the Singleton can be easily adjusted to allow more connections.
There are many ways to achieve singleton in java, let us implement all possible approaches with common mistakes with solutions.
In Java application we frequently use Hibernate. All the time when an application user modify/update its data then we save it into database and send message (SMS or Mail) to user about modification. For achieve this we retrieves existing entity from database and then compare with new entity. We follow this for each entity which results a huge number of classes or huge number of methods for comparison of each entity.
As we generally develop comparison program that does not work dynamically that is if new fields are added into entities then we modify comparison program again to cover new field. So now let us make a dynamic program for entity comparison which will be a common helper program for all entities rather than component specific.
Benefits of Program:
- Easy maintenance as it will be a common program for all entities and if entities are modified even then this program is no need to modify.
- No any additional jar required for entities comparison.
- Less time complexity.
- Reduced codes (number of classed and methods) as it is a common helper.
Limitations of Program:
- This program can be used only when the entities has primary key primitive type “id” Field (i.e. If primary key fields name is “iD” or “Id” or anything else apart from “id” then this program won’t work).
- This program work only with entities not with DTO, POJO or other classes.
Input for program:
- Two Objects of an entity (i.e. existing object and modified object).
Output of Program:
- Returns Map (String key, Object value), where key is [field Name _ Number or field Name _ New _ Number] and value is modified value.