我想在我的web应用程序中使用Spring事件与我的bean“说话”。
例如,fired事件的bean如下所示:
@Controller
@Scope("request")
@KeepAlive
public class Controller extends InitializingBean, ApplicationEventPublisherAware {
private ApplicationEventPublisher applicationEventPublisher;
public void test() {
applicationEventPublisher.publishEvent(new TestEvent(this));
}
}
@Component
@Scope("request")
@KeepAlive
public class Module implements ApplicationListener<TestEvent> {
@Override
public void onApplicationEvent(TestEvent event) {
}
}
所以,我的问题是:
事件侦听器是作用域请求是否可能?而如何做到这一点呢?
谢谢
尝试在单个ApplicationListener中注入一个作用域代理来处理TestEvent。
@Scope(proxyMode=ScopedProxyMode.TARGET_CLASS, value="request")
public class TestEventHandler {
public void onTestEvent(TestEvent event)
// ...
}
}
public class TestEventApplicationListener implements ApplicationListener<TestEvent> {
@Autowired
private TestEventHandler handler;
@Override
public void onApplicationEvent(TestEvent event) {
handler.onTestEvent(event);
}
}
我使用spring指南中简单REST服务的纯示例代码作为基础:http://spring.io/guides/gs/rest-service/ 我添加了单个Bean配置: 然后,我修改后的控制器如下所示: 而我正在得到 由于呼叫“/问候” 我在这里读了一些描述:http://docs.spring.io/spring/docs/current/spring-framework-reference/
在请求范围中,bean被定义为HTTP请求,而在会话范围中,bean被定义为HTTP会话。例如, 如果bean范围是请求,并且用户在其用户会话中对网页发出多个请求,则在每个请求上都会创建一个新bean。 而如果范围被定义为bean的会话,如果用户多次请求网页,则在每次请求时都会返回相同的bean。 请让我知道这种理解是否正确?
问题内容: 我有一个名为Bar的类,带有以下注释: 在私人成员上,我具有以下注释: 在春季配置中,我有一个Foo类的bean。如果用它定义的bean 不起作用,则出现以下异常: NoSuchBeanDefinitionException:找不到依赖项为Foo的匹配bean:期望至少有1个有资格作为此依赖项的自动装配候选的bean 一旦我将注入的bean作用域更改为正常工作。 是否自动布线原型作用域
我想问一个关于JAXB将如何维护与生成的类相关联的值的一般性问题。我可以生成这个类,只要它在有效负载中就可以使用它,但是当我转到另一个spring集成过程时,对象似乎不会保留这些值。我知道必须有一种简单的方法来确保生成的对象保留其填充的内容。我可以重新实例化这个类,但这只是一个新的空类。 这是我想完成的事情 要生成的基本XML文档 这将产生 不过我选择得到这个xml可以使用然后我散集它 然后我在流
SessionFactory 对象的创建代价很昂贵,它是线程安全的对象,它为所有的应用程序线程所共享。它只创建一次,通常是在应用程序启动的时候,由一个 Configuraion 的实例来创建。 Session 对象的创建代价比较小,是非线程安全的,对于单个请求,单个会话、单个的 工作单元而言,它只被使用一次,然后就丢弃。只有在需要的时候,一个 Session 对象 才会获取一个 JDBC 的 Co
问题内容: 有人可以解释一下我一直只使用“原型”的Spring bean的作用域吗,但是还有其他参数可以代替吗? 我在说什么的例子 问题答案: 从Spring规范开始,支持五种类型的bean作用域: 1.单身人士(默认*) 每个Spring IoC容器将单个bean定义的作用域限定为单个对象实例。 2.原型 将单个bean定义的作用域限定为任意数量的对象实例。 3.要求 将单个bean定义的范围限