Springbean加载执行顺序实例解析-创新互联

本文研究的主要是Spring bean 加载执行顺序的相关内容,具体如下。

10余年的垦利网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整垦利建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“垦利网站设计”,“垦利网站推广”以来,每个客户项目都认真落实执行。

问题来源:

有一个bean为A,一个bean为B。想要A在容器实例化的时候的一个属性name赋值为B的一个方法funB的返回值。

如果只是在A里单纯的写着:

private B b;
private String name = b.funb();

会报错说nullpointException,因为这个时候b还没被set进来,所以为null。

解决办法为如下代码,同时学习下spring中 InitializingBean ,对象构造方法 , init-method 的执行顺序。

public class A implements InitializingBean {
	private B b;
	private String name;
	// = b.funb(); 
	public void setB(B b) {
		System.out.println("A.setB initialed");
		this.b = b;
	}
	public A() {
		System.out.println("A initialed");
	}
	public void init() {
		System.out.println("init");
		this.name = b.funb();
	}
	@Override 
	 public String toString() {
		return super.toString() + this.name;
	}
	public void afterPropertiesSet() throws Exception {
		//其实放在这里也可以 
		//this.name = b.funb(); 
		System.out.println("afterPropertiesSet");
	}
}
public class B {
	public String funb() {
		System.out.println("funb");
		return "B.funb";
	}
	public B() {
		System.out.println("B initialed");
	}
}

网页题目:Springbean加载执行顺序实例解析-创新互联
当前网址:http://bzwzjz.com/article/dsjise.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制网站设计 成都做网站建设公司 响应式网站设计方案 成都网站建设 网站制作 成都网站设计 网站设计 网站制作报价 网站制作 成都网站建设 成都网站制作 外贸网站建设 成都网站设计 攀枝花网站设计 品牌网站建设 成都网站建设 高端网站设计推广 网站建设改版 高端网站设计 成都网站制作 上市集团网站建设 手机网站制作设计