注入非Spring bean

在程序中,并非所有的对象都是有Spring创建的。我们如何利用Spring的功能将配置从代码中分离出来,而不是在程序中硬编码?

首先,我们在Spring配置文件中声明一个抽象bean,意在告诉Spring容器,该bean不需要由容器创建:

其次,用@Configurable去修饰pojo

@Configurable("bean id")

public class Instrumentalist implements Performer{
...
}

 

表示Instruments实例即使是在Spring外创建,仍然可以由Spring进行配置。

把Instruments类与bean id关联起来。

最后,还需要在Spring配置中添加如下内容:

<aop:spring-configured/> 它负责告诉Spring有一些Bean需要进行配置,包括在其他地方创建的Bean。

从底层来说,<aop:spring-configured/>创建了一个AspectJ切面,它的切点会在具有@Configurable修饰符的Bean实例化时被触发。

你可能感兴趣的:(spring,AOP,bean)