spring注解nullpointerexception

在applicationContext.xml中定义了sqlSessionFactory


定义一个Search类用于查询操作,希望通过注解的方式注入sqlSessionFactory

publicclassSearch {

@Autowired

SqlSessionFactory sqlSessionFactory;

publicvoidsearch(){

SqlSession session = sqlSessionFactory.openSession();

UserDao u=session.getMapper(UserDao.class);

User user=u.getUser(1);

System.out.println(user.getName());

}

}


定义一个Test类进行查询


publicclassTest {

publicstaticvoidmain(String[] args){

Search search=newSearch();

search.search();

}

}



报空指针异常。

分析:这里直接使用了new 出一个Search的方式,那这个对象肯定不是收到spring容器管理的。这样子的话,spring容器又怎么能把sqlSessionFactory注入到你这个对象中呢?

所以正确的写法是这样子。

先在spring容器中定义出search ,然后在Test中启动容器,获取search, 这样才能实现自动装配。


publicclassTest {

publicstaticvoidmain(String[] args){

@SuppressWarnings("resource")

ApplicationContext context =newClassPathXmlApplicationContext(

"applicationContext.xml");

Search search=(Search) context.getBean("search");

search.search();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容