原本想要在静态方法中获取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讲解及实例
时间: 2024-11-09 00:41:28