spring注入问题空指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring注入问题空指针相关的知识,希望对你有一定的参考价值。

这是我的spring的XML
[code="java"]
<context:annotation-config/>
<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/users"/>
<property name="user" value="root"/>
<property name="password" value="123"/>
<property name="maxPoolSize" value="40"/>
<property name="minPoolSize" value="1"/>
<property name="initialPoolSize" value="1"/>
<property name="maxIdleTime" value="20"/>
<property name="acquireIncrement" value="5"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>cn/com/detech/entity/TUser.hbm.xml </value>
<value>cn/com/detech/entity/TUserinfo.hbm.xml </value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true
</value>
</property>
</bean>
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" > </property>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
<bean id="userService" class="cn.com.detech.userdao.impl.UserService">
</bean>
[/code]
接下来是有一个接口
public interface UserBean;
有一个类实现这个接口
[code="java"]public class UserService implements UserBean
//获取在spring容器里面的数据源
@Resource private SessionFactory sessionFactory;
public TUserinfo getUser(Integer userId)
System.out.println("这里调用的是UserService的查找用户方法");
System.out.println(sessionFactory);
TUser tu=(TUser) sessionFactory.getCurrentSession().get(TUser.class, userId);
Iterator it=tu.getTUserinfos().iterator();
return (TUserinfo) it.next();
[

[/code]
下面有一个Action
[code="java"]
public class UserAction
@Resource UserBean userService;
private TUser tu=new TUser();
private TUserinfo tui=new TUserinfo();
public String login()
System.out.println(userService+"aaaa");
System.out.println(userService.getUser(1).getRealName());
String nextPage="ssss";
return nextPage;

[/code]

然后在Jsp页面我做了个测试代码是这样的:

<%

UserAction userAction=new UserAction();
userAction.login();
%>
现在得问题就是说是空指针问题。。。我或许哪里错了。。但是这两天一直在找这个问题。。
拜托大家了。。。

参考技术A 这个问题很明显,你使用了spring,但你的bean并不是从spring容器中拿到。
正常的应该是:
UserAction userAction=(UserAction )ApplicationContext.getBean("userAction");

这样才是属于spring管理,它才能进行依赖注入。
至于怎么拿到ApplicationContext,你查一下~。本回答被提问者采纳
参考技术B <bean id="userService" class="cn.com.detech.userdao.impl.UserService">
</bean>

@Resource UserBean userService;
确认这注解能通过接口注入吗
你可以试下
@Resource UserService userService;
如果还不行 那我就错了
参考技术C 你要说明白到底是哪个地方报空指针啊
报错的时候会有的提示的,哪个文件第几行第几列

以上是关于spring注入问题空指针的主要内容,如果未能解决你的问题,请参考以下文章

有继承时spring注入空指针问题

请高手看看spring注入问题,这里一登陆就报空指针。

Spring 注入 MessageDrivenBean 不起作用 - 空指针 - jboss eap 7

外置 tomcat启动Spring Boot程序模式下解决过滤器注入bean的空指针问题

SpringBug记录 -- java.lang.NullPointerException在Spring单元测试中遇到的空指针异常及依赖注入异常总结

spring 3.2 注解注入普通BEAN的@Resource 总是得到空指针,怎么解决?