Java 其他类中的Spring和Hibernate注入

Java 其他类中的Spring和Hibernate注入,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我是这门学科的新手 我有配置 试着注射它 @Controller public class HelloController { @Autowired HibernateTemplate hibernateTemplate; @RequestMapping(value = "/hello.htm", method = RequestMethod.GET) public @ResponseBody String save() throws Exceptio

我是这门学科的新手

我有配置

试着注射它

@Controller 
public class HelloController {
    @Autowired
    HibernateTemplate hibernateTemplate;

    @RequestMapping(value = "/hello.htm", method = RequestMethod.GET)  
    public @ResponseBody String save() throws Exception {
       hibernateTemplate.save(new Some(Long.valueOf("33"), Integer.valueOf("1"), Double.valueOf("1"), Short.valueOf("0")));    
    }
}
它起作用了

但如果我尝试在其他类中使用@Autowired,我就有NPE 范例

我知道“ht”是空的

我不知道代码中发生了什么以及为什么它不起作用,我认为这是因为我的类没有在xml文件中注册。 请帮我举个例子。
谢谢大家!

就像@greybearedgeek说的,它应该是一个春豆。您可以将@Component注释添加到类中,以便由spring进行管理:

@Component
public class SomeFacade extends AbstractFacade<Some> {

    @Autowired
    HibernateTemplate hibernateTemplate;

    @Override
    public HibernateTemplate getHibernateTemplate() {
        return hibernateTemplate;
    }

}

是的,为了让它工作,SomeFacade需要是一个Springbean,并且需要被注入HelloController,而不是HelloController构建它。
@Controller 
public class HelloController {

    @RequestMapping(value = "/hello.htm", method = RequestMethod.GET)  
    public @ResponseBody String save() throws Exception {
        SomeFacade df = new SomeFacade();
        HibernateTemplate ht = df.getHibernateTemplate();
    }
}
@Component
public class SomeFacade extends AbstractFacade<Some> {

    @Autowired
    HibernateTemplate hibernateTemplate;

    @Override
    public HibernateTemplate getHibernateTemplate() {
        return hibernateTemplate;
    }

}
<context:component-scan base-package="your.package" />
@Controller 
public class HelloController {

    @Autowired
    private SomeFacade df;

    @RequestMapping(value = "/hello.htm", method = RequestMethod.GET)  
    public @ResponseBody String save() throws Exception {
        HibernateTemplate ht = df.getHibernateTemplate();
    }
}