Java 创建后编辑bean,对于类I can';不修改源代码吗?
我有一个Springbean,我需要在创建它之后进行更改,但是我没有权限编辑bean类的源代码;所以我不能用Java 创建后编辑bean,对于类I can';不修改源代码吗?,java,spring,initialization,spring-bean,Java,Spring,Initialization,Spring Bean,我有一个Springbean,我需要在创建它之后进行更改,但是我没有权限编辑bean类的源代码;所以我不能用 初始方法 初始化bean @施工后 是否有某种方法可以检测这个bean是在另一个类中由id创建的,然后应用我需要的更改 谢谢您可以实现应用您自己的自定义逻辑 例如: public class UserPassAuthFilterBeanPostProcessor implements BeanPostProcessor { private String usernamePa
- 初始方法
- 初始化bean
- @施工后
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;
}
//...
}
您可以实现应用自己的自定义逻辑
例如:
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;
}
//...
}
通常,您没有编写的惟一Springbean是Spring框架提供的bean。您希望更改的been来自何处?它们是如何实例化的?我们的软件使用三层结构:平台、解决方案和实现。我试图更改的bean存在于一个平台库中,我正在实现层工作。我们都试图绕过限制,不能等待下一个平台发布,但扩展平台似乎是正确的做法。如果您的实现正在加载所有spring上下文,那么您可以使用所建议的
BeanPostProcessor
。通常,您唯一没有编码的spring bean是spring框架提供的bean。您希望更改的been来自何处?它们是如何实例化的?我们的软件使用三层结构:平台、解决方案和实现。我试图更改的bean存在于一个平台库中,我正在实现层工作。我们都试图绕过限制,不能等待下一个平台发布,但扩展平台似乎是正确的做法。如果您的实现正在加载所有spring上下文,则可以按照建议使用BeanPostProcessor