Skip to main content

Understanding CDI (Contexts and Dependency Injection) Part 4

This is Fourth  part of CDI discussion.Please visit part onepart two and  part three


Interceptors
Interceptors is one feature of CDI. Using this feature we can intercept the method call. Its counterpart technique for Aspect Oriented Programming (AOP) in Spring. Its helps to analysis the business methods and these interceptors are disabled by default. so we can enable/disable the interceptor in deployment time through beans.xml  file.

Create interceptor
     To create interceptor involves two step process. first to create interceptor binding and  implement the interceptors.

here we create Log Interceptor, so we need to create Log Interceptor Binding(its  like qualifier)

Log.java


here @InterceptorBinding is represent that the annotation 'Log' is interceptor

second, we need to implement the interceptors

LogImpl.java

here @Interceptor represent that its interceptor implementation
@Log specifies to which interceptor  implementation , both of these lines shows that this  class is Log interceptor Implementation

@AroundInvoke is comes before one method defines
that method must pass the below method signature

         public    Object    <methodName> (InvocationContext context)

here methodName is any name we can give.
in that method call  context.proceed() - to call actual method



so when we call any intercepted method then the container calls this method and here do pre-processing then call actual method through  context.proceed() and finally we can do some post-processing...


Apply Interceptor
Once interceptor is ready, then we can apply any business class
SimeClass.java

here i put @Log in class level. we can put method level also (i.e we can put some methods )

Interceptor is disabled by default. so we need to enable through beans.xml



Through servlet/jsp if u try to call business method of SomeClass class, its do all pre and post processing through interceptors.

Comments are welcomed 


Scree cast
please watch video in HQ mode


Comments are welcomed

Popular posts from this blog

Docker : Tomcat Clustering with Load Balancer (Tomcat and Nginx)

In this post i will show Tomcat Clustering in Docker Container. In  my previous post i discussed how to achieve tomcat clustering with Nginx Front end . Its almost same scenario, but this time we will achieve via docker container. Docker Docker  is an  open-source  project that automates the deployment of  applications  inside  software containers , by providing an additional layer of abstraction and automation of  operating-system-level virtualization  on  Linux . [4]  Docker uses resource isolation features of the Linux kernel  such as  cgroups  and kernel  namespaces  to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining  virtual machine   --Wikipedia

Understanding Virtual Host Concept in Tomcat

Hi in this post we will see how to setup virtual host in Apache Tomcat server. Virtual Host is in-built feature that allows to deploy multiple website(domains) in single instance of tomcat server. The main benefit in this way is its cost effective. Scenario: I am going to deploy 3 website with following domain names in single tomcat http://www.ramki.com http://www.krishnan.com http://www.blog.ramki.com The following diagram is my outline. Outline structure of Virtual Host Concept in Tomcat Here my tomcat IP address 192.168.1.15. or any IP address allocated my ISP. but it should be public IP address. How all domain names are pointing to my Tomcat?                   When we purchase the domain name we need to update the our tomcat IP address to it. like or we can simulate same DNS Setup through hosts file in both Linux and Windows. In Linux tha file is located at /etc/hosts Now How Setup...

File Upload is Easy in JSF2.2

To bring the File Upload feature in Java based web application is one of the difficult and complex job, we need to dependent on 3rd party libraries like Apache Commons FileUpload  Libraries. These libraries codes are complex and most of them boilerplate code. If we are using Java Server Faces (JSF), we have the page with some fields and file upload menu the its add more complexity, fields are binded to backing bean but these file uploads components are need to tie up with some 3rd party file upload libraries. In Primefaces provide easy way to do the file upload in JSF web application, even though primefaces internally used the same Apache Commons FileUpload Libraries, but provide simple JSF tags. We need configure  some listeners.