spring中的aop(面向切面编程)需要到导入的包与简单示例

2023-09-07

复制代码
<?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.hh</groupId>
    <artifactId>SpringAOP</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.11.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.7</version>
        </dependency>

    </dependencies>

</project>
复制代码

BookDao
复制代码
package com.hh.dao;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-07 15:29:13
 */
public interface BookDao {

    public void save();
    public void update();
}
复制代码

BookDaoImpl

 

复制代码
package com.hh.dao.impl;

import com.hh.dao.BookDao;
import org.springframework.stereotype.Repository;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-07 15:29:53
 */
@Repository
public class BookDaoImpl implements BookDao {
    @Override
    public void save() {
        System.out.println(System.currentTimeMillis());
        System.out.println("book dao save...");
    }

    @Override
    public void update() {
        System.out.println("book dao update...");
    }
}
复制代码

MyAdvice

复制代码
package com.hh.aop;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-07 15:39:41
 */
@Component
@Aspect
public class MyAdvice {

    @Pointcut("execution(void com.hh.dao.BookDao.update())")
    private void pt(){}

    @Before("pt()")
    public void method(){
        System.out.println(System.currentTimeMillis());
    }
}
复制代码

SpringConfig

复制代码
package com.hh.comfig;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

/**
 * @author hh
 * @version 1.0
 * @DATE 2023-09-07 15:31:16
 */
@Configuration
@ComponentScan({"com.hh"})
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class SpringConfig {
}
复制代码

 

posted @   努力是一种常态  阅读(310)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2022-09-07 MySQL第五天
点击右上角即可分享
微信分享提示