- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建扩展org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter
的CustomWebServiceMessageReceiverHandlerAdapter
。
WebServiceMessageReceiverHandlerAdapter
扩展了实现 InitializingBean
的抽象 WebServiceMessageReceiverObjectSupport
。
我有一个问题,因为我不明白为什么我必须打电话自定义处理程序中的 afterPropertiesSet()
。我在没有调用此方法的情况下收到错误:“需要工厂消息”。但是,此方法在抽象类中调用,因此我的自定义处理程序应该从抽象类运行 afterPropertiesSet()
。如果您知道解决方案,请告诉我。非常感谢。
编辑:这是我的CustomWebServiceMessageReceiverHandlerAdapter
:
public class CustomWebServiceMessageReceiverHandlerAdapter extends WebServiceMessageReceiverHandlerAdapter {
@Override
protected void handleInvalidXmlException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler,
InvalidXmlException ex) throws Exception {
//code
}
@Override
public void afterPropertiesSet() {
}
}
WebServiceMessageReceiverHandlerAdapter
和 WebServiceMessageReceiverObjectSupport
来自 Spring Framework
public class WebServiceMessageReceiverHandlerAdapter extends WebServiceMessageReceiverObjectSupport{}
没有 afterPropertiesSet()
public abstract class WebServiceMessageReceiverObjectSupport implements InitializingBean {
private WebServiceMessageFactory messageFactory;
/** Returns the {@code WebServiceMessageFactory}. */
public WebServiceMessageFactory getMessageFactory() {
return messageFactory;
}
/** Sets the {@code WebServiceMessageFactory}. */
public void setMessageFactory(WebServiceMessageFactory messageFactory) {
this.messageFactory = messageFactory;
}
@Override
public void afterPropertiesSet() throws Exception {
Assert.notNull(messageFactory, "messageFactory is required");
}
现在,当我从自定义处理程序中删除 afterPropertiesSet()
时,会引发异常。在我看来,我不了解bean的生命周期。
最佳答案
我不确定您的具体情况。一般来说,如果一个 bean 实现了 InitializingBean
,因此 afterPropertiesSet
会在 bean 实例实例化之后以及 Spring 注入(inject)所有 @Autowired
属性之后调用此方法/值。
在您的具体情况下,您需要确保设置(通过继承)类的 messageFactory
属性。通常,如果您为 Autowiring 提供合适的 setter,则这由 Spring 完成:
@Autowired
@Override
public void setMessageFactory(WebServiceMessageFactory messageFactory) {
super.setMessageFactory(messageFactory);
}
如果您覆盖 afterPropertiesSet
而不调用 super.afterPropertiesSet()
,则 bean 的创建将起作用,因为 super 实现的断言将被跳过。但是,由于 messageFactory
属性未正确初始化,您可能会进一步遇到问题。
关于java - Bean 生命周期 - afterPropertiesSet(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60828423/
我使用 SpringTest 和 EasyMock 对我的 Spring bean 进行单元测试。 我的测试bean是这样的: @ContextConfiguration(locations
在我的 spring 配置中我定义了 bean bean id="com.companyName.schedulerBean" class="org.springframework.sched
我正在尝试创建扩展org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter的CustomWebServ
我正在 afterPropertiesSet() 方法中从数据库加载静态列表。 在这个类中,我在很多方法中使用静态列表,所以我不想总是从数据库加载这个列表。 代码是: private Collect
当我的应用程序启动时,我尝试用数据初始化我的缓存,但它不起作用。我的代码: springBoot应用 package com.r2b.springcache; import org.springfra
我想在tomcat启动后做一些数据库搜索。 所以我只是实现了InitializingBean,实现了方法afterPropertiesSet,将数据库操作放在了afterPropertiesSet中。
我正在为我的 spring 应用程序编写一些 junit 测试。下面是我实现 InitializingBean 接口(interface)的应用程序, public class InitializeF
我需要在 bean 属性设置后做一些初始化工作, ApplicationContext context = new ...; AutowireCapableBeanFactory factory =
spring bean 生命周期中有很多可用的初始化选项。 init-method、PostConstruct注解、afterPropertiesSet、Bean post-initializatio
本文整理了Java中org.springframework.beans.factory.config.YamlPropertiesFactoryBean.afterPropertiesSet()方法的
本文整理了Java中org.springframework.yarn.test.support.YarnClusterFactoryBean.afterPropertiesSet()方法的一些代码示例
本文整理了Java中org.springframework.batch.core.repository.dao.XStreamExecutionContextStringSerializer.afte
本文整理了Java中org.cloudfoundry.identity.uaa.impl.config.YamlConfigurationValidator.afterPropertiesSet()方
当我们也有自定义的init()时,为什么还需要InitializingBean的afterPropertiesSet@Bean(initMethod = "init") 或 @PostConstuct
我是一名优秀的程序员,十分优秀!