请问一下,为什么我写的 user.setName("xxx")返回的是null?
请问一下,为什么我写的 user.setName("xxx")返回的是null?
代码:
public class Installer{
//实现相应的增删改查方法
private IUserService userService;
private User user;
// set,get方法.....
public void install() {
// 2.超级用户
// 在这里改成new 一个User对象,并且User类里增加了空构造函数,运行后还是报错。
// User user=new User();
user.setName("超级用户");
user.setLoginName("admin");
user.setPassword("admin");
userService.save(user);
// 3.初始化权限....
}
-----------------------------------------------------------------------------------
applicationContext.xml
<!-- 配置ActionService -->
<bean id="RoleServiceImpl" class="com.itcast.service.impl.RoleServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="UserServiceImpl" class="com.itcast.service.impl.UserServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="PrivilegeServiceImpl" class="com.itcast.service.impl.PrivilegeServiceImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置实体类 -->
<bean id="User" class="com.itcast.domain.User"></bean>
<bean id="Privilege" class="com.itcast.domain.Privilege"></bean>
....
<!-- 配置Installer类(初始化权限管理数据)-->
<bean id="Installer" class="com.itcast.install.Installer">
<property name="userService" ref="UserServiceImpl"></property>
<property name="privilegeService" ref="PrivilegeServiceImpl"></property>
<property name="user" ref="User"></property>
</bean>
运行后报:Exception in thread "main"
java.lang.NullPointerException
at com.itcast.install.Installer.install(Installer.java:51)就是代码为红色的地方
at com.itcast.install.Installer.main(Installer.java:42)
------解决方案--------------------配置文件问题。spring没有管理到bean。userService,privilegeService,user都没有被初始化(debug时那三个对象都为null)。
------解决方案--------------------Installer类中的User属性需要有setUser 方法。 你没有创建?
------解决方案--------------------你这 2个名字应该是要一样的。不能不一样。你也可以按住Ctrl然后鼠标对着 参数。看有没有能点进去的趋势。有就对,没有就说明没有配置对。就是空的,null