Knowledge Walls
J2EE Technologies Tutorial
Hyderabad, Andhra Pradesh, India
How to use @DeclareParents annotation in Spring Framework with Example
10508 Views
Hints 
Below is an example of "How to use @DeclareParents annotation in Spring Framework with Example"
Student.java
package com.springexample;

public class Student implements StudentImpl {
	private int studentNo;
	private String studentName;
	
	public Student(){
		this.studentNo = 1001;
		this.studentName = "John";
	}
	
	public int getStudentNo() {
		return studentNo;
	}
	public void setStudentNo(int studentNo) {
		this.studentNo = studentNo;
	}
	public String getStudentName() {
		return studentName;
	}
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}	
	
	public void showDetails(){
		System.out.println(this.studentNo);
		System.out.println(this.studentName);
	}
}
Output 
1001
John
Newyork
America
Download as Zip 
Link to download
DeclareParentAnnotationOfAspectJInSpringExample

Hints.
Click on File menu. then click "Download"
Step.1 Start a Java Project with required jars 
  1. Open Eclipse
  2. Click on menu New -> Others
  3. In wizards type "Java Project" and Select "Java Project"
  4. Click Next
  5. Enter project name as "DeclareParentAnnotationOfAspectJInSpringExample", then click Next
  6. Goto Libraries tab, then click on Add External JARs, then select Spring's 21 Framework Jars aopalliance-1.0.jar, aspectjtools-1.6.6.jar and commons-logging-1.1.jar.
  7. Click Finish.
Step.2 Project Explorer Preview 
StudentAdditionalDetails.java
package com.springexample;

public class StudentAdditionalDetails implements StudentAdditionalDetailsImpl {
	private String city;
	private String country;
	
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getCountry() {
		return country;
	}
	public void setCountry(String country) {
		this.country = country;
	}
	
	public void showAdditionalDetails(){
		System.out.println(this.city);
		System.out.println(this.country);
	}
}
RunMyProgram.java
package com.springexample;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RunMyProgram {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		StudentAdditionalDetailsImpl studentAdditionalDetails = (StudentAdditionalDetailsImpl) context.getBean("studentAdditionalDetails");
		((StudentImpl) studentAdditionalDetails).showDetails();
		studentAdditionalDetails.showAdditionalDetails();
	}
}
LinkAspects.java
package com.springexample;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclareParents;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class LinkAspects {
	@DeclareParents(value="com.springexample.StudentAdditionalDetailsImpl+",defaultImpl=Student.class)
	public static StudentImpl studentImpl;
}
StudentImpl.java
package com.springexample;

public interface StudentImpl {
	public void showDetails();
}
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<aop:aspectj-autoproxy />
	<context:component-scan base-package="com.springexample" />
	
	<bean id="student" class="com.springexample.Student">
		<property name="studentNo" value="1001" />
		<property name="studentName" value="John Peter" />
	</bean>
	
	<bean id="studentAdditionalDetails" class="com.springexample.StudentAdditionalDetails">
		<property name="city" value="Newyork" />
		<property name="country" value="America" />
	</bean>
</beans>
StudentAdditionalDetailsImpl.java
package com.springexample;

public interface StudentAdditionalDetailsImpl {
	public void showAdditionalDetails();
}
Best Lessons of "Spring 3.0 Examples"
Top lessons which are viewed more times.
  Copyright © 2014 Knowledge walls, All rights reserved
KnowledgeWalls
keep your tutorials and learnings with KnowledgeWalls. Don't lose your learnings hereafter. Save and revise it whenever required.
Click here for more details