关闭

在普通Java类里使用spring里注入的service、dao等

标签: spring注入spring注入普通类
6886人阅读 评论(1) 收藏 举报
分类:

在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指针,因为这个普通的Java类并不在spring管理下,不能使用spring注入的service。

下面讲一个方法,让普通工具类也能使用service。


定义一个类 SpringTool

/**
 * 通过该类即可在普通工具类里获取spring管理的bean
 * @author wolf
 *
 */
public final class SpringTool implements ApplicationContextAware {
	private static ApplicationContext applicationContext = null;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		if (SpringTool.applicationContext == null) {
			SpringTool.applicationContext = applicationContext;
			System.out.println(
					"========ApplicationContext配置成功,在普通类可以通过调用ToolSpring.getAppContext()获取applicationContext对象,applicationContext="
							+ applicationContext + "========");
		}
	}

	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	public static Object getBean(String name) {
		return getApplicationContext().getBean(name);
	}
}

然后将这个类,加入到spring的配置文件里,

<bean class="app.util.spring.SpringTool"/>

然后就可以了,就可以在任何一个普通的工具类里,根据spring里配置好的bean的id,得到这个注入好的对象了

import app.util.spring.SpringTool;
public class Test {
	
	public void print() {
		ArticleService articleService = (ArticleService) SpringTool.getBean("articleService");
		Article article = articleService.queryById(756);
		System.out.println(article.getTitle());
	}
}



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

springMVC中普通类调用注解service方法

在springMVC中的普通类中调用注册service的方法
  • u011385445
  • u011385445
  • 2015-10-21 15:45
  • 8125

Spring 注解中,普通类获取@Service标记的方法 或者bean对象

使用Spring框架,我们不需要创建类的对象,都有Spring 容器创建,并通过注解来注入。注入的原理就是在程序启动的时候,Spring根据xml中配置的路径来扫描类,如果发现类的上方有类似@Serv...
  • u011242657
  • u011242657
  • 2017-05-03 14:31
  • 6314

Spring Boot 普通类调用Bean对象的一种方式

有时我们有一些特殊的需要,可能要在一个不被Spring管理的普通类中去调用Spring管理的bean对象的一些方法,比如一般SpringMVC工程在controller中通过 @Autowired p...
  • u012809062
  • u012809062
  • 2017-06-08 18:28
  • 2986

spring 如何将spring中的dao、service等注入到普通的Java类

转载自:http://www.cnblogs.com/liuzhixin/p/6963786.html 在spring管理的项目里,譬如springboot、springmvc等的项目,配置...
  • u012377333
  • u012377333
  • 2017-11-07 10:41
  • 350

java 普通类调用Spring注解方式的Service层bean

注意:此篇只是给那些spring晕头者查阅,大神绕道 我们在开发的时候肯定经常用到JUnit, @RunWith(SpringJUnit4ClassRunner.class) @ContextConf...
  • yangshare
  • yangshare
  • 2017-04-05 11:08
  • 279

简单MVC三层代码生成器:使用Java从数据库反向生成实体类和action、service、dao代码

新版代码生成器下载地址: 目录说明: 1、简单代码生成器,可生成MVC三层代码,也可根据需要自定义代码模版。 2、目录说明 2.1、运行bin/startup.bat即可启动生成器。 2.2、te...
  • yh880610
  • yh880610
  • 2014-07-06 15:32
  • 4492

java spring 简单封装出自己的DAO Service实现

package com.jade.basung.bss.module.common; import com.jade.framework.base.criterion.Criteria; impor...
  • u014535678
  • u014535678
  • 2016-07-16 15:26
  • 4063

java中从Spring、Hibernate和Struts框架的action、service和dao三层结构异常处理体系设计

java中从Spring、Hibernate和Struts框架的action、service和dao三层结构异常处理体系设计   Spring的事务实现采用基于AOP的拦截器来实...
  • mwyking
  • mwyking
  • 2016-05-24 17:20
  • 466

MyBatis+Spring在注解@Autowried后通过反射的方式调用方法获取注入的Service或DAO对象为空

最近在做一个定时读取数据的功能,我的想法是能够动态的添加定时任务而不用重启系统,在网上也借阅了很多文章,但是都不够完整,因此通过网上的借鉴我自己整理了一份代码,系统采用的是Spring Boot+My...
  • u013050790
  • u013050790
  • 2017-04-25 14:10
  • 876

利用Spring测试类测试Dao和Service

首先添加包spring-mock-1.2.6.jar或spring-test-3.2.0.RELEASE.jar。在包org.springframework.test下可以看到Spring测试父类: ...
  • iuhiqnehc
  • iuhiqnehc
  • 2012-12-19 13:58
  • 2270
    个人资料
    • 访问:300328次
    • 积分:3895
    • 等级:
    • 排名:第9547名
    • 原创:97篇
    • 转载:34篇
    • 译文:0篇
    • 评论:131条
    博客专栏
    友情链接
    最新评论