您的位置:首页 > 编程语言 > Java开发

普通静态类方法获取Spring注入的Been实体

2015-04-29 00:00 351 查看
原本想要在静态方法中获取Spring注解后的Been,发现给Been字段添加static关键字后,启动tomcat报错-------错误大意是说静态字段不能注解。

然后google下,解决方法如下:

package com.sondon.dev_info.controller;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import com.sondon.dev_info.entity.DevInfo;
import com.sondon.dev_info.service.TemplateManager;

/**
* @Project : Dev_Info_Web
* @Package : com.sondon.dev_info.controller
* @Class : Dev_Info.java
* @Company 广州讯动网络科技有限公司
* @Author : 蔡文锋
* @DateTime:2015年4月24日 下午1:39:58
* @Blog:http://blog.csdn.net/caiwenfeng_for_23
* @Description : {}
*/

@Controller
public class Dev_InfoController {
@Resource
public TemplateManager<DevInfo> templateManager;
private static Dev_InfoController dev_infoController;

/**
* 构造方法执行后调用 init()
*/
@PostConstruct
public void init() {
System.out.println("I'm  init  method  using  @PostConstrut....");
dev_infoController = this;
dev_infoController.templateManager = this.templateManager;
}
/**
*  servlet销毁前调用dostory()
*/
@PreDestroy
public void  dostory(){
System.out.println("I'm  destory method  using  @PreDestroy.....");
}

public static void Add_DevInfo(DevInfo devinfo) {

// boolean result=false;
dev_infoController.templateManager.add(devinfo);
// return result;
}

/**
* @param templateManager
*            the templateManager to set
*/
public void setTemplateManager(TemplateManager<DevInfo> templateManager) {
this.templateManager = templateManager;
}
}


从上面可以看到使用了
@PostConstruct , 然后在静态方法
Add_DevInfo(DevInfo devinfo)调用了
templateManager

不了解@PostConstruct @PreDestroy的同学,可以看下面一篇文章:

注解@PostConstruct与@PreDestroy讲解及实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息