Spring AOP - 应用POJO简介

时间:2017-02-13 11:42:24

标签: spring spring-boot spring-aop

我正在创建一个Spring Boot应用程序,并尝试使用Spring AOP Introductions为类分配接口和实现。但是,目前,在实例化对象后,它似乎没有应用接口。

我是AOP的新手 - 是因为我没有从应用程序上下文创建类 - 如果是这样,这似乎是相当有限的。

的pom.xml

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.5.4</version>
    </dependency>

Application.java

@SpringBootApplication
@EnableAspectJAutoProxy
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

ResourceIdentification Aspect

@Aspect
@Component
public class ResourceIdentification {

    @DeclareParents(value="com.example.Greeting*", defaultImpl=AbstractResource.class)
    public Resource mixin;

}

控制器 - 用于演示目的。

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";

    @RequestMapping("/greeting")
    public Resource greeting(@RequestParam(value="name", defaultValue="World") String name) {

        Resource greeting = (Resource) new Greeting(String.format(template, name));

        return greeting;
     }
}

我的理解是Greeting类现在实现了Resource接口(使用AbstractResource)。但是,我得到了ClassCastException。

此外,我希望在启动过程中看到日志中的某些内容,以表明我的Aspect已被找到并应用,但是,日志与AOP没有任何关系。

非常感谢任何帮助。

0 个答案:

没有答案