我的代码和配置文件如下
BeanPostProcesssor实现
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方法----在初始化之后----...setname.......GetName.....名称为..测试用户
普通bean工厂允许对后处理器进行编程注册,应用于通过该工厂创建的所有bean。
http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/beanPostProcessor.html
您已经定义了3个bean,AppConfig、customer和PP。bean post处理器将在每次bean创建后执行。如果你有3个bean,它将被执行3次。
@Configuration
public class AppConfig {
@Bean(name="customer")
public Customer getCustomer(){
return new Customer();
}
@Bean
public BeanPP getPP(){
return new BeanPP();
}
}
问题内容: 使用JMapViewer,可以识别该组件的异常行为。我正在使用DefaultMapController来获取地图位置(纬度,经度)。 运行代码,在按下鼠标左键后,方法mouseClicked()被调用多次(2x)。更换后 与 代码正常工作,该方法仅被调用1x。问题出在哪里?是库内部的错误还是语法错误或不安全?如何避免这个问题?谢谢你的帮助。 问题答案: 您的extensions ,在实
运行在Mojarra 2.1.13、PrimeFaces 3.5、JDK 1.6.x上。和Apache Tomcat 7.0.27,谢谢! 多谢了。
问题内容: 我有使用JQuery..I米一个问题在我的代码发送字段名和序列号,其通过获取其数据的ctrller 和并且与序列表中没有given..And生成预览显示面板更新字段名与插入的字段..现在,我再次尝试更改字段名称。tat是现在,当我单击生成的显示面板字段时,相应的设置将打开,我将尝试立即更改字段名称 两者和都相同..在我发送的是字段名和序列号 在功能2中,我要发送相同的字段名和(但其他值
问题内容: 如果我在节点中编写以下程序: 然后在服务器上单击两次,在服务器上看到两次- 我不确定为什么单个HTTP请求导致两次执行。 问题答案: 那是正常现象-您的浏览器拨打了多个电话。 例如,大多数浏览器都会呼叫来获取。 尝试记录网址: 然后您会看到正在调用的内容。
在我的应用程序中,我将TextWatcher放在EditText上。当我更改EditText的文本时,TextWatcher的事件会被调用两次。 我正在使用模拟器来运行应用程序。
问题内容: 关于的简单代码。是SessionScoped Bean,是RequestScoped Bean 内 我的问题是被叫很多。会告诉我们该方法在什么阶段被调用。首次加载页面时,请在阶段6-进行约 5次 呼叫。该页面上有一个,因此我在其中键入一些内容,然后单击(命令按钮)。然后在阶段1-> 4期间再呼叫 12次 。每个阶段调用此方法 3-4次 。然后,此属性的get 方法的setter方法(即