创建后编辑bean,因为class我不能修改源?

Edit bean after creation, for class I can't modify the source of?

我有一个 spring bean,创建后我需要对其进行更改,但我无权编辑 bean class 的源代码;所以我不能用...

有什么方法可以检测到此 bean 何时由另一个 class 中的 id 创建,然后应用我需要的更改?

谢谢

您可以实施 BeanPostProcessor 以应用您自己的自定义逻辑。

示例:

public class UserPassAuthFilterBeanPostProcessor implements BeanPostProcessor {

    private String usernameParameter;
    private String passwordParameter;

    @Override
    public final Object postProcessAfterInitialization(final Object bean, final String beanName) {
        return bean;
    }

    @Override
    public final Object postProcessBeforeInitialization(final Object bean, final String beanName) {
        if (bean instanceof UsernamePasswordAuthenticationFilter) {
            final UsernamePasswordAuthenticationFilter filter = (UsernamePasswordAuthenticationFilter) bean; 
            filter.setUsernameParameter(getUsernameParameter());
            filter.setPasswordParameter(getPasswordParameter());
        }

        return bean;
    }
    //...
}