MyBatis与Spring配置错误空指针异常



我是一个尝试整合我的batis的新手。最后到达这个空指针异常。

我的POM

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.1.1</version>
    </dependency>

My Spring Config

<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
<context:component-scan base-package="biz.canisrigel.slapMe" />
<!-- enable autowire -->
<context:annotation-config />
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/slapMe" />
    <property name="username" value="root" />
    <property name="password" value="adminadmin" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="biz.canisrigel.slapMe.bean" />
</bean>
<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="biz.canisrigel.slapMe.mapper" />
</bean>
我Mapper

public interface UserMapper {
UserBean getUser();
}
<mapper namespace="biz.canisrigel.slapMe.mapper.UserMapper">
<select id="getUser" resultType="UserBean">
    Select * from Users where id = 1;
</select>
</mapper>
用户Bean

几个变量

<<p> 我的刀/strong>
@Service
public class UserDao {
@Autowired
private UserMapper userMapper;
public UserBean getUser(int id) {
    if (userMapper == null) {
        System.out.println("Errorrrrrr...................");
        // return new UserBean();
    }
    return userMapper.getUser();
}
}
控制器

@Controller
@RequestMapping("/authenticate")
public class LoginController {
@RequestMapping("/index")
public String index() {
    UserDao userDao = new UserDao();
    System.out.println(userDao.getUser(1).getPassword());
    return "Login";
}
}
误差

org.springframework.web.util。NestedServletException:请求处理失败嵌套异常是java.lang.NullPointerExceptionorg.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java: 932)org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java: 816)javax.servlet.http.HttpServlet.service (HttpServlet.java: 621)

您的UserDao对象需要来自Spring对象存储以及您的映射器。像你这样在你的index方法中实例化UserDao对象将意味着当你调用时映射器是null,因为Spring没有为你设置对象,因此不能自动装配你的映射器。

您将希望使用@Resource注释将UserDao对象带入控制器,如下所示:

 @Controller
 @RequestMapping("/authenticate")
 public class LoginController {
    @Resource
    UserDao userDao;
    @RequestMapping("/index")
    public String index() {
        System.out.println(userDao.getUser(1).getPassword());
        return "Login";
    }
 }

最新更新