0 0

关于Spring 注解注入对象问题30

问题描述如下:

A 类是一个WS入口,调用B类的业务。 然后在B类里面注入service ,注入的service为空。

public class A{

   private B b = new B();

   public void test(){

       b.method();

}

}

 

public class B{

    @Resource
     private IEsbForEmpBusinessService esbForEmpBusinessService;

 

    在这个类里面的方法,调用esbForEmpBusinessService层的方法为空注入不进去。

}

 

@Service("esbForEmpBusinessServicesImpl")
public class EsbForEmpBusinessServicesImpl implements IEsbForEmpBusinessService {
     @Resource
     private IEsbForEmpBusinessDao esbBusinessDao ;
 
 
   @Override
   public EsbToHrEmpInfo queryHrEmpInfo(String  emp_num) throws ServiceException {
    EsbToHrEmpInfo ethe = esbBusinessDao.queryHrEmpInfo(emp_num);
    return ethe ;

   }

 @Override
 public void creatHrEmpInfo(EsbToHrEmpInfo hrempInfo) throws ServiceException {
  esbBusinessDao.creatHrEmpInfo(hrempInfo);

 }

 @Override
 public void updateHrEmpInfo(EsbToHrEmpInfo hrempInfo,String emp_num) throws ServiceException {
  esbBusinessDao.updateHrEmpInfo(hrempInfo,emp_num);

 }

 @Override
 public List<String> queryAreaCodeByNetCode(String netCode)
   throws ServiceException {
  return esbBusinessDao.queryAreaCodeByNetCode(netCode);
 }

}

 

 

问题: class B 里面的service对象注入不进来为null ,求解!!!!

2014年9月05日 11:45

4个答案 按时间排序 按投票排序

0 0

采纳的答案

不能自己实例化bean,要通过sring获取。

@Service("esbForEmpBusinessServicesImpl")
public class EsbForEmpBusinessServiceImpl implements IEsbForEmpBusinessService {

    @Resource
    private IEsbForEmpBusinessDao esbBusinessDao;

    public EsbToHrEmpInfo queryHrEmpInfo(String emp_num) {
        System.out.println(emp_num);
        EsbToHrEmpInfo ethe = new EsbToHrEmpInfo();
        return ethe;

    }

}

@Service("serviceB")
public class B {
    
    @Resource
    private IEsbForEmpBusinessService esbForEmpBusinessService;
    
    public void method() {
        esbForEmpBusinessService.queryHrEmpInfo("111111");
    }
}

@Service("serviceA")
public class A {
    
    @Autowired
    @Qualifier("serviceB")
    private B b;

    public void test(){

        b.method();

 }

public static void main(String[] args) {
        
        FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("test.xml");
        A a = (A) context.getBean("serviceA");
        System.out.println(a);
        a.test();
    }

2014年9月05日 15:45
0 0

public class A{

   private B b = new B();

   public void test(){

       b.method();

}

}
直接B b = new B();是不行的,不会触发相关的注入

public class A{
   @Resource(name="b")
   private B b ;

   public void test(){

       b.method();

}

}

2014年9月05日 16:56
0 0

看下你配置的注解扫描包路径有没有包括这个包。

2014年9月05日 14:59
0 0

@Service("esbForEmpBusinessServicesImpl") 里面的名字和esbForEmpBusinessService名字不同,改下看可以不。

2014年9月05日 12:27

相关推荐

    spring注解注入示例详解-(三)

    以上就是关于Spring注解注入的详细介绍,包括基本概念、使用方法以及在用户注册功能中的应用。通过这种方式,我们可以更简洁、高效地管理对象间的依赖关系,同时简化配置,提高代码的可读性和维护性。

    在非spring注解类中使用spring容器中的bean_普通类中使用yml配置文件中的配置信息

    2. 如果你的类是Spring的一部分,可以通过`@Autowired`注解注入`ApplicationContext`,然后在需要的地方使用它。 3. 或者,你可以在初始化阶段,通过静态工厂方法或单例模式获取并保存`ApplicationContext`,以便...

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    二、Spring注解方式的依赖注入 1. `@Autowired` 注解:这是Spring中最常用的注解,用于自动装配依赖。当Spring容器扫描到这个注解时,会自动寻找类型匹配的bean进行注入。如果存在多个候选bean,可以通过`@...

    Spring 注解 小例子

    Spring注解的主要目的是消除XML配置文件,使开发者能够通过在类或方法上直接添加注解来声明对象及其依赖关系。这个小例子将深入探讨Spring框架中的主要注解及其用法。 1. `@Component`、`@Service`、`@Repository` ...

    对Spring中注解怎么实现的一些基本原理

    本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...

    Spring Ioc 注解 依赖注入

    ### Spring IoC与注解依赖注入详解 #### 一、Spring框架简介 Spring框架是由Rod Johnson创建的一...以上就是关于Spring IoC容器以及注解依赖注入的相关知识点介绍,希望能够帮助大家更好地理解和掌握这一重要的技术。

    Spring注释 注入方式源码示例,Annotation

    凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处需要注入对象,所以用@Resource就有了ref的功效。 要用注解注入方式...

    spring注解注入示例详解[文].pdf

    在Spring框架中,注解注入是一种非常常见的依赖注入方式,它可以极大地简化代码并提高可维护性。本篇文章主要探讨了Spring中的几个关键注解:`@Autowired`、`@Qualifier`、`@Resource`以及`@PostConstruct`,并解释...

    day38 17-Spring的Bean的属性注入:注解方式

    在源码层面,Spring使用`BeanPostProcessor`接口处理注解注入。当容器初始化Bean时,会遍历所有Bean,寻找实现了`BeanPostProcessor`接口的类,调用其`postProcessBeforeInitialization`和`...

    spring注解方式解析

    本文将深入解析Spring中的注解式编程,主要包括IOC(Inversion of Control,控制反转)的自动装配和依赖注入的解析。 首先,我们来看一下IOC自动装配。IOC是Spring的核心特性,它将对象的创建和管理从应用代码中...

    spring注解实现注入.zip

    总结来说,Spring注解注入提供了简洁、强大的方式来管理对象的依赖关系。通过使用`@Autowired`、`@Qualifier`、`@Resource`等注解,我们可以轻松地实现bean之间的依赖注入,提高代码的可读性和可维护性。同时,结合...

    spring依赖注入底层详解

    总的来说,Spring依赖注入的底层机制涉及了反射、AOP和容器管理等多个方面,它有效地解决了对象间的依赖关系问题,提升了代码的可读性和可维护性,是Spring框架的一大亮点。通过深入理解这一机制,开发者可以更好地...

    dwr+spring 注解方式

    1. **Spring注解配置**: - `@Configuration`:标记一个类为Spring配置类,可替代传统的XML配置。 - `@ComponentScan`:用于扫描指定包下的所有@Component及其子注解(如@Service、@Repository、@Controller)的类...

    最简单的一个spring注解实例

    在Spring框架中,注解是实现依赖注入(Dependency Injection,DI)的一...在SpringIOC的压缩包文件中,可能包含了关于Spring注解和IoC容器的相关教程、示例代码或文档,可以帮助你更深入地理解和实践Spring注解的使用。

    我的博客spring注解概述的示例代码

    在这个"我的博客spring注解概述的示例代码"资源中,我们可能找到如何使用`@Autowired`来自动装配bean的实例。 首先,让我们了解什么是依赖注入。在面向对象编程中,一个类往往依赖于其他类来完成特定任务。依赖注入...

    hibernate+spring注解例子

    这个"hibernate+spring注解例子"项目提供了一个实际的登录场景,帮助学习者更好地理解和运用这两个框架的注解特性。通过深入学习和实践,开发者能够提高开发效率,降低出错概率,为构建高效、稳定的Java应用程序打下...

    spring注解+spring data jpa文档+JPA文档.rar

    Spring注解是Spring框架中的一大特色,它极大地简化了配置过程,让代码更加简洁易读。注解如`@Component`、`@Service`、`@Repository`和`@Controller`用于标记不同层次的Bean,而`@Autowired`则负责自动装配Bean之间...

    Spring 注解学习手札(一) 构建简单Web应用

    在本篇《Spring注解学习手札(一)构建简单Web应用》中,我们将深入探讨如何使用Spring框架的注解来构建一个基本的Web应用程序。Spring框架是Java开发中的核心工具,尤其在企业级应用中广泛应用。它简化了依赖注入、...

    Java反射、泛型和注解实战之Spring核心注入IOC的实现

    在Spring中,反射被用来实现依赖注入,即在运行时根据配置信息创建并装配对象。例如,通过`Class.forName()`获取类实例,通过`Constructor.newInstance()`创建对象,通过`Method.invoke()`调用方法。 2. 泛型: ...

Global site tag (gtag.js) - Google Analytics