SpringMVC Mybatis 注入和事务的问题 通过其他类

一般在Cotroller 注入没有问题,那么自己如何建一个工具类,例如 util

public class GetResource{

@Autowired
private  NumberOneService Numberservice;

}

注入之后就会空指针,请大神教下如何注入,最好亲测成功的!
mvc

8个回答

1.首先你要把你的类注册到spring容器内,方法1:配置到xml里 ,方法2:xml配置注解扫描,在类上面配置@service,@Component等注解
2.然后你才可以用注入的方式注入到其他地方用,Autowired默认是不能为空的,spring容器中没找到就会报错

工具类一般都是静态类呀,不用注入可直接使用。有其他依赖的接口一般作为service注入。

换成@Resource试试

你的对象不在容器管理内
1. 先给你写个工具类:

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**

  • spring 对象管理类
  • Created by jerry on 2017/3/2.
    */
    public class SpringBean implements ApplicationContextAware {

    /**

    • 当前IOC */ private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext arg0) throws BeansException {
    applicationContext = arg0 ;

    }
    /**

    • 获取spring
    • @param id
    • @return */ public static Object getObject(String id) { Object object = null; object = applicationContext.getBean(id); return object; } }
      1. 在 spring 配置文件内配置
      2. 使用 SpringBean.getObject("spring管理的对象Id")
caoheike
caoheike 我是springMVC +mybatyis 具体操作 有资料吗? 发我 谢谢。
2 年多之前 回复
  1. 在 spring 配置文件内配置
  2. 使用 SpringBean.getObject("spring管理的对象Id")

这个编辑器有bug!!!
< bean id="springUtils" class="com.*.*.util.SpringBean" />

1.首先你要把你的类注册到spring容器内,方法1:配置到xml里 ,方法2:xml配置注解扫描,在类上面配置@service,@Component等注解
2.然后你才可以用注入的方式注入到其他地方用,Autowired默认是不能为空的,spring容器中没找到就会报错

我想你遇到的问题不是简单的bean没有声明。
而是mvc的容器和tomcat的IOC容器不是完全一致的。
这是因为spring-mvc.xml提供的bean是属于mvc的。而你通过listener加载的其余bean是属于根容器的!
![图片说明](https://img-ask.csdn.net/upload/201703/03/1488500887_369245.png)

看上图你就明白了。
但是mvc也就是COntroller所在的容器是可以引用外部容器的,这是因为mvc容器是外部容器的子集。然而,外部容器不得引用mvc容器中的内容。
这就和变量一样,大作用域不能引用小作用域的变量的!

望采纳!
阿福敬上

最上面 @Controller 加了没

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!