昨天临时有了在bean中有注入静态属性的需求。

在网上找了好些例子。发现或多或少都有些麻烦。最后,有了一个思路。先注入一个正常私有的属性,然后通过指定方法赋值给需要的静态属性。

在此之前,先了解一下@PostConstruct。IoC容器实例化当前受管Bean时,@PostConstruct注解的方法会被自动触发,完成一些初始化工作。

全部代码如下

/**
 * spring注入静态属性的一种方法
 * 
 * @author 北 纬
 */
@Component
public class InitStaticData {

	@Resource
	private AdminService adminServiceTemp;// 为了注解static属性,增加的普通属性

	public AdminService getAdminServiceTemp() {
		return adminServiceTemp;
	}

	public void setAdminServiceTemp(AdminService adminServiceTemp) {
		this.adminServiceTemp = adminServiceTemp;
	}

	//实际需要上的静态属性
	public static AdminService adminService;

	
	@PostConstruct
	public void init() {
		adminService = this.adminServiceTemp;
	}

}


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐