spring_aop(一)

用maven配置項目:

 

配置文件:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zit</groupId>
    <artifactId>spring004</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.1</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <testSourceDirectory>src/test/java</testSourceDirectory>
        <sourceDirectory>src/main/java</sourceDirectory>
        <!--處理無法加載資源文件-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>


</project>

src/main/resources/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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
    <context:annotation-config/>


    <bean id="sdao" class="com.zit.dao.StudentDao"/>
    <bean id="bdao" class="com.zit.dao.BookDao"/>
    <bean id="log" class="com.zit.dao.Log"/>
    <aop:config>
        <aop:pointcut id="cc" expression="execution(public * com.zit.dao..*.s*(..))"/>
        <aop:pointcut id="sd" expression="execution(public * com.zit.dao.StudentDao.de*(..))"/>
        <aop:aspect ref="log">
            <aop:before method="init" pointcut-ref="cc"/>
            <aop:after method="info" pointcut-ref="cc"/>
        </aop:aspect>
        <aop:aspect ref="log">
            <aop:after method="dinfo" pointcut-ref="sd"/>
        </aop:aspect>
    </aop:config>


</beans>

文件:

com.zit.dao.BookDao.java

package com.zit.dao;

public class BookDao {

    public void saveBook(){
        System.out.println("保存書籍...");

    }



}

com.zit.dao.Log.java

package com.zit.dao;

public class Log {

    public void init() {
        System.out.println("打開 連接數據庫");
    }

    public void info() {
        System.out.println("關閉數據庫連接...");
    }

    public void dinfo() {
        System.out.println("刪除後,關閉數據庫連接...");
    }
}

com.zit.Dao.StudentDao.java

package com.zit.dao;

public class StudentDao {

    public void save() {
        System.out.println("保存學生信息");
       /* Log log=new Log();
        log.info();*/
    }

    public void delete() {
        System.out.println("刪除信息完成");
      /*  Log log=new Log();
        log.dinfo();*/
    }

}

測試文件:

test/java/com.Demo.java

package com;

import com.zit.dao.BookDao;
import com.zit.dao.StudentDao;
import com.zit.entitey.Student;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Demo {

    @Test
    public void tt() {
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
        StudentDao sdao = ctx.getBean("sdao", StudentDao.class);
        sdao.save();
        sdao.delete();

        System.out.println("********************************");
        BookDao bdao = ctx.getBean("bdao", BookDao.class);
        bdao.saveBook();
    }
}

完成。。。

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