Spring的<aop:declare-parents>元素如何使用,有範例

原文地址點擊打開鏈接

提示:

如下是一個如何使用Spring框架的<aop:declare-parents>元素的例

步驟一、

1、打開Eclipse

2、點擊 New -> Others

3、選擇wizards type "Java Project"--Java Project

4、點擊下一步

5、鍵入名稱DeclareParentTagInSpringExample點擊下一步

6、在Libraries頁面選擇Add External JARs,添加 Spring's 21 Framework Jarsaopalliance-1.0.jar, aspectjtools-1.6.6.jar and commons-logging-1.1.jar。

7.點擊完成

步驟二、工程預覽


StudentAdditionalDetails.java

<span style="font-family:SimSun;font-size:18px;">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);
    }
}</span>
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();
    }
}
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">
 
    <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>
     
    <aop:config>
        <aop:aspect>
            <aop:declare-parents types-matching="com.springexample.StudentAdditionalDetailsImpl+"
                                 implement-interface="com.springexample.StudentImpl"
                                 delegate-ref="student" />
        </aop:aspect>
    </aop:config>
 
</beans>

StudentAdditionalDetailsImpl.java

package com.springexample;
 
public interface StudentAdditionalDetailsImpl {
    public void showAdditionalDetails();
}


Student.java

package com.springexample;
 
public class Student implements StudentImpl {
    private int studentNo;
    private String studentName;
     
    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 Peter
Newyork
America

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章