文档章节

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

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:39
字数 264
阅读 3
收藏 0

原本想要在静态方法中获取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讲解及实例

本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/45249717

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
@Autowired注解和静态方法

一、业务场景 spring框架应用中有些静态方法需要依赖被容器管理的类,就像这样: @Componentpublic class Test { } 这样一定会报java.lang.NullPointerException: null异常。 二、原理剖析 ...

谢思华
2018/08/03
106
0
spring 四种依赖注入方式

平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类...

举个_栗子
2017/12/17
40
2
案例认识 Spring IOC

本文spring libs 地址:https://github.com/yizhiamumu/springlibs Spring 能帮我们做什么 ①.Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系。 ②.Spring 面向切面编程能帮助我们...

一只阿木木
2018/08/16
0
0
MongoDB —— 使用Spring Data MongoDB操作数据库

本文代码示例参见:https://gitee.com/imlichao/MongoDB-example 我们使用Spring Data MongoDB可以方便的在Spring boot项目中操作MongoDB 文档地址:https://docs.spring.io/spring-boot/do...

哼_哼
01/10
3.7K
0
Spring中你不知道的注入方式

前言 在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如: 使用<bean>元素,实际上是让Spring执行无参或有参构造器 使用<property>元素,实际上是让Spring执行...

摆渡者
2014/03/08
8.7K
1

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部