我正在使用bean post处理器,它给出了空指针exception

package com.bpp.beans; public class EmpBean { String name; String id; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public void initempbean() { System.out.println("inside initempbean"); } public void destroyempbean() { System.out.println("inside destroyempbean"); } } package com.bpp.beans; public class Person { String name; String id; EmpBean empBean; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public EmpBean getEmpBean() { return empBean; } public void setEmpBean(EmpBean empBean) { this.empBean = empBean; } public void initperson() { System.out.println("inside init personnnnnnn"); } public void destroyperson() { System.out.println("inside destroy personnnn"); } } package com.bpp.beans; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; public class EmpPostProcessor implements BeanPostProcessor { @Override public Object postProcessAfterInitialization(Object bean, String arg1) throws BeansException { System.out.println("inside bean pp after initialization"); return null; } @Override public Object postProcessBeforeInitialization(Object bean, String arg1) throws BeansException { System.out.println("inside bean pp before initialization"); return null; } }              package com.bpp.main; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.bpp.beans.Person; public class BppMain { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("com/bpp/commons/application-context.xml"); Person obj=context.getBean("person",Person.class); System.out.println("the value of name is:"+obj.getName()); } } 

创建emp bean时exception是空指针exception

线程“main”org.springframework.beans.factory.BeanCreationException中的exception:在类路径资源[com / bpp / commons / application-context.xml]中定义名为'emp'的bean时出错:init方法的调用失败; 嵌套exception是java.lang.NullPointerException
    在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
    在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
     at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:294)
    在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    在org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:139)
    在org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:83)
    在com.bpp.main.BppMain.main(BppMain.java:12)
引起:java.lang.NullPointerException
    在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1537)
    在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1522)
    在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
     ......还有12个

在Spring中,doc是为postProcessAfterInitializationpostProcessBeforeInitialization编写的:

返回:要使用的bean实例,原始实例或包装实例

由于在这些方法中不执行任何操作,因此应返回作为参数传递的Object ,该参数是bean的实例。