- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个Bean,它实现
BeanPostProcessor
public class ScopeTest implements BeanPostProcessor {
public ScopeTest() {
System.out.println("ScopeTest()");
}
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("postProcessBeforeInitialization()");
return null;
}
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("postProcessAfterInitialization()");
return null;
}
}
我已经在 Spring bean 配置文件中将其配置为 scope
作为 prototype
。
<bean id="st" class="com.test.ScopeTest" scope="prototype" />
我使用 ApplicationContext
运行代码
public class App {
public static void main(String[] args) {
ApplicationContext container = new ClassPathXmlApplicationContext("spring.xml");
}
}
我观察到的输出是
ScopeTest()
这里是什么让容器为没有 getBean()
标记为 prototype
的 bean 创建对象?
最佳答案
原型(prototype)范围在这里不起作用,因为 BeanPostProcessor 实现仅在 Spring 应用程序上下文启动时发现、实例化和注册。这些 bean 按类型(实例化之前/之后等)排序并存储在列表中。从那里,后处理器 bean 被应用于进一步的 bean 创建。与“普通”bean(如服务 bean)相比,它们在启动后不会再次从上下文中检索。因此不考虑它们适用的范围。
关于java - 为什么范围原型(prototype)不适用于实现 BeanPostProcessor 的 spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30069656/
我试图理解静态初始化、实例初始化、InitializingBean 和 BeanPostProcessor 的顺序,所以我创建了下面的示例,除了 BeanPostProcessor 没有被调用之外,一
使用 BeanPostProcessor 时出现问题。错误日志显示,productFactory 类中缺少方法 josh(),但该类确实有这样的方法,而且它是非静态的。下面是代码片段。 web.xml
这是我的 config.xml 我知道在使用组件扫描时,分配给 bean 的默认范围是“单例”,除非在 xml 配置中另行指定或使用注释 @
我知道 spring BeanPostProcessor 是如何工作的,但我确实没有得到任何 BeanPostProcessor 可能非常有帮助的场景。如果有人在他/她的应用程序中实现了 BeanPo
我试图理解 Spring 中的 BeanPostProcessor,但我不明白它的作用。 BeanPostProcessor 定义了在这些点调用的两个方法是否正确: 在初始化之前(init 方法或 a
我正在将 Spring 与 Spring Boot BOM 2.4.0 附带的遗留 Tomcat 应用程序(不是 Spring Boot)一起使用,问题类似于 Spring Expression La
我正在编写一个简单的函数,通过从 BeanPostProcessor 创建一个代理来记录 @Metric 注释的方法的性能: 公制.java @Retention(RUNTIME) @Target({
我有很多千篇一律的 spring bean,不想在 xml 中显式定义每一个。所以我去了让我这样做的组件扫描路线。这很好,但我刚刚意识到 MyBeanPostProcessor 没有被调用用于使用组件
在 Maven 中设置 Spring + Spring Data JPA + QueryDSL + JPA 2.0 + Hibernate 的配置时遇到了很多麻烦。我已经解决了很多问题,但是这个让我很
我正在学习 Spring Core 认证,我对 Spring 如何处理 bean 生命周期,尤其是 bean 后处理器有一些疑问。 所以我有这个架构: 我很清楚这意味着什么: 以下步骤发生在加载 Be
为了弄清楚Spring框架,我们需要分别弄清楚相关核心接口的作用,本文来介绍下BeanPostProcessor接口 BeanPostProcessor 该接口我们也叫后置处理器
我正在制作一个简单的程序来测试 bean 后处理器,但收到 NullPointerException。这是我写的代码 人员类别: public class Person { private Strin
我知道 bean 后处理器并且它正在工作,但我不确定它将如何帮助我们进行实际应用。在实际应用中下面的 define 方法中应该有什么? 1 Some configuration Code? 2 Som
使用 Spring 可以将 BeanPostProcessor 实现添加到上下文中,以便在使用依赖项初始化 bean 之前和之后有条件地替换、包装或代理 bean。 Google Guice 是否提供
我目前是 Spring 的新手。我试图遵循调用 PostConstruct 和 BeanPostProcessor 的顺序。 根据我的了解,以下是顺序:- BPP -> postProcessBefo
我试图了解 BeanFactoryPostProcessor 和 BeanPostProcessor 之间的区别。 我知道 BeanFactoryPostProcessor 对 bean 定义进行操作
我正在尝试创建一个 BeanPostProcessor 来将一些值注册到 Map。 如果我通过 xml 定义创建 bean 实例,BeanPostProcessor 工作正常,但如果我将 bean 定
我有一个实现 springs BeanPostProcessor 的类 A public class A implements BeanPostProcessor { private B b;
我正在尝试实现我自己的 BeanPostProcessor 实现。 @Component public class UserDetailsProcessor implements BeanPostPr
我正在执行 BeanPostProcessor 实现。我的 Bean 后处理器执行了 3 次。我在 init 方法之前额外调用了 2 次后处理器。我无法找到它发生的原因。请帮助我。 我的代码和配置文件
我是一名优秀的程序员,十分优秀!