- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在执行 BeanPostProcessor 实现。我的 Bean 后处理器执行了 3 次。我在 init 方法之前额外调用了 2 次后处理器。我无法找到它发生的原因。请帮助我。
我的代码和配置文件如下
BeanPostProcessor 实现
public class BeanPP implements BeanPostProcessor{
@Override
public Object postProcessBeforeInitialization(Object o, String string) throws BeansException {
System.out.println("---before initialization ------");
return o;
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public Object postProcessAfterInitialization(Object o, String string) throws BeansException {
System.out.println("----After initializaion ---- ");
return o;
//To change body of generated methods, choose Tools | Templates.
}
}
客户 Bean
public class Customer {
private String name;
public String getName() {
System.out.println("..getName.....");
return name;
}
public void setName(String name) {
System.out.println("..setName.....");
this.name = name;
}
@PostConstruct
public void init(){
System.out.println("....Bean is going though init method");
}
@PreDestroy
public void destory(){
System.out.println("....Bean is going to destroy.......");
}
}
配置类
@Configuration
public class AppConfig {
@Bean(name="customer")
public Customer getCustomer(){
return new Customer();
}
@Bean
public BeanPP getPP(){
return new BeanPP();
}
}
主类
public class MainApp {
public static void main(String[] args) {
ApplicationContext appContext = new AnnotationConfigApplicationContext(AppConfig.class);
Customer customer = (Customer)appContext.getBean("customer");
customer.setName("test user ");
System.out.println(".Name is .."+customer.getName());
}
}
输出
---初始化之前----------初始化后-------初始化之前----------初始化后-------初始化之前------....Bean 正在通过 init 方法----初始化后----..设置名称.......getName......名字是..测试用户
最佳答案
Plain bean factories allow for programmatic registration of post-processors, applying to all beans created through this factory.
您已经定义了 3 个 bean,AppConfig、customer 和 PP。 bean 后处理器将在每次创建 bean 后执行。如果你有 3 个 bean,它将被执行 3 次。
@Configuration
public class AppConfig {
@Bean(name="customer")
public Customer getCustomer(){
return new Customer();
}
@Bean
public BeanPP getPP(){
return new BeanPP();
}
}
@Configuration也定义了一个bean,因为它继承自@Component。
关于java - Spring BeanPostProcessor 被调用了 3 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832589/
我试图理解静态初始化、实例初始化、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 次后处理器。我无法找到它发生的原因。请帮助我。 我的代码和配置文件
我是一名优秀的程序员,十分优秀!