我有一个类,里面要调用我的写好的一个接口实现类
public class UsersRights {
private MeetingUsersDAO meetingUsersDAO; public MeetingUsersDAO getMeetingUsersDAO() {
return meetingUsersDAO;
} public void setMeetingUsersDAO(MeetingUsersDAO meetingUsersDAO) {
this.meetingUsersDAO = meetingUsersDAO;
}
public MeetingUsers userRights(String userName) {
meetingUsersDAO.checkUserAdmin(iShort, userName);
}配置文件如下 <bean id="meetingUsersDAO" class="com.anyka.meeting.daoimpl.MeetingUsersDAOImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <bean id="users" class="com.anyka.meeting.UsersRights">
<property name="meetingUsersDAO">
<ref local="meetingUsersDAO"/>
</property>
</bean> 运行userRights方法就会报空指针错误。请教高人到底是什么方法有错。。拜谢
public class UsersRights {
private MeetingUsersDAO meetingUsersDAO; public MeetingUsersDAO getMeetingUsersDAO() {
return meetingUsersDAO;
} public void setMeetingUsersDAO(MeetingUsersDAO meetingUsersDAO) {
this.meetingUsersDAO = meetingUsersDAO;
}
public MeetingUsers userRights(String userName) {
meetingUsersDAO.checkUserAdmin(iShort, userName);
}配置文件如下 <bean id="meetingUsersDAO" class="com.anyka.meeting.daoimpl.MeetingUsersDAOImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <bean id="users" class="com.anyka.meeting.UsersRights">
<property name="meetingUsersDAO">
<ref local="meetingUsersDAO"/>
</property>
</bean> 运行userRights方法就会报空指针错误。请教高人到底是什么方法有错。。拜谢
meetingUsersDAO.checkUserAdmin(iShort, userName);
UsersRights usersRights=(UsersRights) ctx.getBean("usersRights");
usersRights.fuck_you(..);
<property name="meetingUsersDAO">
<ref local="meetingUsersDAO"/>
</property>
</bean>
这个users对象里面的dao不是空的 在这里你已经注入并新建了个对象放在spring容器里 你要调用 users对象checkUserAdmin方法就要 到sring容器里 获得这个对象
就像上面说的
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
UsersRights usersRights=(UsersRights) ctx.getBean("users");
在调用 usersRights.
WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(ServletContext);
而且在普通类中取ServletContext也很麻烦
<bean id="users" class="com.anyka.meeting.UsersRights">
<property name="meetingUsersDAO" ref="meetingUsersDAO">
</property>
</bean>
问题肯定是出在框架上
ApplicationContext ctx=new ClassPathXmlApplicationContext("c:\\applicationContext.xml");
UsersRights usersRights=(UsersRights) ctx.getBean("usersRights");
usersRights.fuck_you(..);
和什么工程没关系
如果不这样的话你这个就不好NEW了
UsersRights usersRights=(UsersRights) ctx.getBean("usersRights");
这个是测试中的写法
ApplicationContext ctx=new ClassPathXmlApplicationContext("c:\\applicationContext.xml");
UsersRights usersRights=(UsersRights) ctx.getBean("usersRights");
而只通过注入在普通类中拿到usersRights的对象方法吗
UsersRights usersRights=(UsersRights) ctx.getBean("usersRights");
usersRights.fuck_you(..);
楼主测试代码能执行吗?
难道是sessionFactory大小写的问题
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire="byName">