- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Spring Boot 应用程序中,我有一个配置,它从 Mongo 数据库读取条目。
完成此操作后,我的 AbstractMongoEventListener
子类被创建,即使它在不同的表和不同的范围(我自己的自定义 @CustomerScope
)上运行。
这是监听器:
@CustomerScoped
@Component
public class ProjectsRepositoryListener extends AbstractMongoEventListener<Project> {
@Override
public void onAfterSave(Project source, DBObject dbo) {
System.out.println("saved");
}
}
这里是配置:
@Configuration
public class MyConfig {
@Autowired
private CustomersRepository customers;
@PostConstruct
public void initializeCustomers() {
for (Customer customer : customers.findAll()) {
System.out.println(customer.getName());
}
}
}
我对监听器被实例化感到惊讶。特别是因为它是在对客户存储库的调用完成后很好地实例化的。
有办法防止这种情况发生吗?我正在考虑以编程方式按表/范围注册它,而不使用注释魔法。
最佳答案
为了防止自动实例化,监听器不得注释为@Component
。配置需要获取可以 Autowiring 的ApplicationContext。
因此,我的配置类如下所示:
@Autowired
private AbstractApplicationContext context;
private void registerListeners() {
ProjectsRepositoryListener firstListener = beanFactory.createBean(ProjectsRepositoryListener.class);
context.addApplicationListener(firstListener);
MySecondListener secondListener = beanFactory.createBean(MySecondListener.class);
context.addApplicationListener(secondListener);
}
请注意,这适用于任何 ApplicationListener
,而不仅仅是 AbstractMongoEventListener
。
关于java - 如何以编程方式注册 AbstractMongoEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37297262/
在我的 Spring Boot 应用程序中,我有一个配置,它从 Mongo 数据库读取条目。 完成此操作后,我的 AbstractMongoEventListener 子类被创建,即使它在不同的表和不
上下文:Java8 应用程序,Spring MongoDB 1.9.1 我有一个包含 A 实体的集合,另一个包含 B 实体的集合。在我的域模型中,实体 A 有一个 B 集合作为 DBRef,如下所示
我正在使用 spring-data 将我们的应用程序与 Mongodb 集成。在其中一个用例中,我调用了 MongoOperation.updateMulti(query, set.., Lead.c
我是一名优秀的程序员,十分优秀!