Java Means Durgasoft: DURGA SOFTWARE SOLUTIONS, 202 HUDA Maitrivanam, Ameerpet, Hyd. PH: 040-64512786
Java Means Durgasoft: DURGA SOFTWARE SOLUTIONS, 202 HUDA Maitrivanam, Ameerpet, Hyd. PH: 040-64512786
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
1
JAVA Means DURGASOFT
Annotations
1.Introduction
2.Comment Vs Annotations
3.XML Vs Annotations
4.Types of Annotations
5.Standard Annotations
6.Custom Annotations
Annotation:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
2
JAVA Means DURGASOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
3
JAVA Means DURGASOFT
Ex:
web.xml
<web-app>
<servlet>
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
4
JAVA Means DURGASOFT
<servlet-name>ls</servlet-name>
<servlet-class>LoginServlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>ls</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
@WebServlet("/login")
JDK1.4 JDK5.0
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
5
JAVA Means DURGASOFT
JDBC3.0 JDBC4.0
Servlets2.5 Servlets3.0
Struts1.x Struts2.x
JSF1.x JSF2.x
Hiberante3.2.4 Hibernate3.5
EJBs2.x EJBs3.x
Spring2.x Spring3.x
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
6
JAVA Means DURGASOFT
@interface Annotation_Name{
@Annotation_Name(member_name1=value1,member_Name2=v
alue2.........)
1.Marker Annotations:
Ex:
@interface Override{
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
7
JAVA Means DURGASOFT
2.Single-Valued Annotation:
Ex:
@interface SuppressWarnings{
String value();
3.Multi-Valued Annotation:
Ex:
@interface WebServlet{
int loadOnStartup();
String[] urlPatterns();
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
8
JAVA Means DURGASOFT
-----
1.Standard Annotations
2.Custom Annotations
1.Standard Annotations:
2.Meta Annotations
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
9
JAVA Means DURGASOFT
Ex:
@Override
@Deprecated
@SuppressWarnings
@FunctionalInterface [JAVA 8]
2)Meta Annotations:
Ex:
@Inherited
@Documented
@Target
@Retention
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
10
JAVA Means DURGASOFT
1.@Override:
Ex:
class JdbcApp
System.out.println("Type-1 Driver");
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
11
JAVA Means DURGASOFT
@Override
System.out.println("Type-4 Driver");
class Test
app.getDriver();
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
12
JAVA Means DURGASOFT
@Deprecated:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
13
JAVA Means DURGASOFT
class Employee{
@Deprecated
class Test{
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
14
JAVA Means DURGASOFT
emp.gen_Salary(25000,20.0f);
@SuppressWarnings(--):
Ex:
import java.util.*;
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
15
JAVA Means DURGASOFT
class Bank{
@SuppressWarnings("unchecked")
al.add("chaitu");
al.add("Mahesh");
al.add("Jr NTR");
al.add("Pavan");
return al;
class Test{
List l=b.listCustomers();
System.out.println(l);
}
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
16
JAVA Means DURGASOFT
@FunctionalInterface:
@FunctionalInterface
interface Loan{
void getLoan();
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
17
JAVA Means DURGASOFT
System.out.println("GoldLoan");
class Test{
l.getLoan();
@Inherited:
@Inherited annotation.
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
18
JAVA Means DURGASOFT
Ex:
@interface Persistable
@Persistable
class Employee
@Inherited
@interface Persistable
}
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
19
JAVA Means DURGASOFT
@Persistable
class Employee{
@Documented:
Ex:
@interface Persistable
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
20
JAVA Means DURGASOFT
@Persistable
class Employee
javadoc Employee.java
@Documented
@interface Persistable
@Persistable
class Employee
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
21
JAVA Means DURGASOFT
@Target:
Synatx:
Ex:
@Target(ElementType.TYPE,ElementType.FIELD,ElementType.ME
THOD)
@interface persistable
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
22
JAVA Means DURGASOFT
@Persistable
class Employee
@Persistable
Account acc;
@Persistable
@Retention:
Syntax:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
23
JAVA Means DURGASOFT
@Retention(RetentionPolicy.RUNTIME)
@interface Persistable
@Persistable
class Employee
Custom Annotations:
Bank.java
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
24
JAVA Means DURGASOFT
import java.lang.annotation.*;
@Inherited
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface Bank
Account.java
@Bank(name="Axis Bank",phone="040-987654")
String accNo;
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
25
JAVA Means DURGASOFT
String accName;
String accType;
this.accNo=accNo;
this.accName=accName;
this.accType=accType;
System.out.println("Account Details");
System.out.println("----------------");
System.out.println("Account Number:"+accNo);
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
26
JAVA Means DURGASOFT
1)If the annotation is class level annotation then use the following
steps:
2)If the annotation is Field level annotation then use the following
steps:
MainApp.java
import java.lang.annotation.*;
import java.lang.reflect.*;
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
27
JAVA Means DURGASOFT
acc.getAccountDetails();
System.out.println();
Class c=acc.getClass();
Annotation ann=c.getAnnotation(Bank.class);
Bank b=(Bank)ann;
System.out.println("Bank Details");
System.out.println("------------");
System.out.println("Phone "+b.phone());
Course.java:
import java.lang.annotation.*;
@Inherited
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface Course{
Student.java:
String sid;
String sname;
String saddr;
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
29
JAVA Means DURGASOFT
this.sid=sid;
this.sname=sname;
this.saddr=saddr;
@Course(cid="C-222",cname=".NET")
System.out.println("Student Details");
System.out.println("---------------");
System.out.println("Student Id :"+sid);
System.out.println("Student Address:"+saddr);
ClientApp.java
import java.lang.annotation.*;
import java.lang.reflect.*;
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
30
JAVA Means DURGASOFT
std.getStudentDetails();
System.out.println();
Class cl=std.getClass();
Method m=cl.getMethod("getStudentDetails");
Annotation ann=m.getAnnotation(Course.clas);
Course c=(Course)ann;
System.out.println("Course Details");
System.out.println("---------------");
System.out.println("Course Id :"+c.cid());
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
31
JAVA Means DURGASOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
32
JAVA Means DURGASOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page
33