自定义注解,以及切面编程

第一步:自定义一个注解

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.METHOD)

public @interface AdminOnly {

}
第二步:创建一个切面

@Aspect

@Component

public class DemoAspect {

@Pointcut("@annotation(AdminOnly)")

public void hehe() {

}

@Before("hehe()")

public void heihei() {

System.out.println("我在执行。。。");

}

}

第三步:在对应接口上加入需要进行切入的注解

@Service

public class ProductService {

@AdminOnly

    public void insert(Product product){

    System.out.println("aaaa");

}

@AdminOnly

    public void delete(Product Product) {

    System.out.println("bbbbb");

}

}

第四步:测试一下

@RunWith(SpringRunner.class)

@SpringBootTest

public class DemoApplicationTests {

    @Autowired

    ProductServiceproductService;

    @Test

    public void contextLoads() {

        Product product =new Product();

        product.setId(1);

        productService.insert(product);

}

引入jar包:

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-aop</artifactId>

</dependency>

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-test</artifactId>

    <scope>test</scope>

</dependency>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容