spring的普通类如何注入service、dao

转载 2018年04月17日 16:02:51

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,得到这个注入好的对象了


  1. import app.util.spring.SpringTool;  
  2. public class Test {  
  3.       
  4.     public void print() {  
  5.         ArticleService articleService = (ArticleService) SpringTool.getBean("articleService");  
  6.         Article article = articleService.queryById(756);  
  7.         System.out.println(article.getTitle());  
  8.     }  
  9. }  

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

在spring管理的web项目里,譬如Struts和spring的项目,配置好后,Struts里就可以直接使用定义好的service。但是如果要在普通的工具类里,使用service或dao,就会报空指...
  • tianyaleixiaowu
  • tianyaleixiaowu
  • 2017-01-20 12:15:02
  • 8443

如何在普通类中直接访问service层或dao层

1、最近遇到一个问题,如何在工具类中去访问dao层与service层的方法,因为可能本人底子比较薄弱,一开始未想到错误点在哪,后来debug才发现我的service或 dao 都是空的。    ...
  • HL_smile90
  • HL_smile90
  • 2017-08-02 09:07:55
  • 2852

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

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

在spring项目的普通java类中获取service或dao

在spring项目的普通java类中获取service或dao
  • leapping
  • leapping
  • 2017-09-08 16:49:45
  • 158

SpringBoot普通类中如何获取其他bean例如Service、Dao

转:https://www.cnblogs.com/mrx520/p/7802831.html 工具类 import org.springframework.beans.BeansExce...
  • majunzhu
  • majunzhu
  • 2018-01-29 20:51:00
  • 545

(亲测有效。)Spring MVC中,Controller中使用service只需使用注解,但是普通类获取 service或 dao 都是null空的。

(亲测有效。)Spring MVC中,Controller中使用service只需使用注解,但是普通类获取 service或 dao 都是null空的。...
  • u012726702
  • u012726702
  • 2017-09-29 17:16:14
  • 857

spring quartzy的spring注入问题(dao层和service层)

许久没有写博文了,今天来写写,毕业设计中遇到的某个小问题,及解决方法。 毕业设计中涉及到spring的定时器quartzy的使用, 遇到的问题是:quartzy中不能使用spring注入的方式注入da...
  • maiyikai
  • maiyikai
  • 2017-04-16 23:41:11
  • 1448

spring基于注解的普通类怎么调用@Services注解的service方法

spring基于注解的普通类怎么调用@Services注解的service方法,需要一些先决条件: 1、如果你想用@autowired,那么这个类本身也应该是在spring的管理下的,即你的UserL...
  • thl331860203
  • thl331860203
  • 2015-05-14 19:59:47
  • 15322

SpringBoot学习(2)-SpringBoot中其他普通类调用Spring管理的Service、dao等bean

在springboot的使用中,有时需要在其他的普通类中调用托管给spring的dao或者service,从而去操作数据库。网上大多数的资料都是说添加一些注解什么的,但是这都是不行的。   举个...
  • yft_android
  • yft_android
  • 2018-01-25 21:33:47
  • 449

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

在springMVC中的普通类中调用注册service的方法
  • u011385445
  • u011385445
  • 2015-10-21 15:45:35
  • 9183
收藏助手
不良信息举报
您举报文章:spring的普通类如何注入service、dao
举报原因:
原因补充:

(最多只允许输入30个字)