ApplicationContext 文件 
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="net.sourceforge.jtds.jdbc.Driver">
</property>
<property name="url"
value="jdbc:jtds:sqlserver://192.168.3.2:1433;DatabaseName=yhoa">
</property>
<property name="username" value="sa"></property>
<property name="password" value="sa"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SybaseDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/ziboyanhua/oa/user/data/Yhuser.hbm.xml
</value></list>
</property></bean>
<bean id="yhuserDAO"
class="com.ziboyanhua.oa.user.data.YhuserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>


<bean id="UserService"
class="com.ziboyanhua.oa.user.service.UserService" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="yhuserDAO">
<ref bean="yhuserDAO" />
</property>
</bean>YhuserDAO 是生动自成的
Yhuser.hbm.xml也是自动生成UserServicepublic class UserService {
public YhuserDAO yhuserDAO;

    
public YhuserDAO getYhuserDAO() {
return yhuserDAO;
} public void setYhuserDAO(YhuserDAO yhuserDAO) {
this.yhuserDAO = yhuserDAO;
} public void inste(){
System.out.println(yhuserDAO);
Yhuser yhuser=new Yhuser();
 yhuser.setUsername("wangx");
yhuser.setPasswrod("123");
yhuserDAO.save(yhuser);
} public static void main(String[] args) {  
UserService  user=new UserService();
user.inste();



}
}报 
Exception in thread "main" java.lang.NullPointerException
at com.ziboyanhua.oa.user.service.UserService.inste(UserService.java:24)
at com.ziboyanhua.oa.user.service.UserService.main(UserService.java:29)

解决方案 »

  1.   

    检查 配置文件中 的名字是否写错
    和 getXXX的名字是否写错
      

  2.   


    public static void main(String[] args) {   
    UserService user=new UserService();
    user.inste();LZ用了Spring、业务层也注入了、为什么test类中还要用new呢?
      你要加载Spring配置文件、然后getBean()这样!!!ApplicationContext app = new ClassPathXmlApplicationContext("你Spring配置文件的位置");
    UserService user= (UserService)app.getBean("Spring配置文件中该bean的Id");
      

  3.   

    UserService user=new UserService();你这样是获取不到注入的yhuserDAO的,当然报空指针异常了;看看这个吧:http://blog.csdn.net/xkyle/archive/2008/05/16/2453074.aspx
      

  4.   


    是的,使用Sprin如果在用new的话,那肯定是空值啊
      

  5.   

    ApplicationContext app = new ClassPathXmlApplicationContex("ApplicationContext.xml");
     UserService user= (UserService)app.getBean("UserService");
      

  6.   

    如果用了Spring IOC的话就是用new了,直接在上面写一个private UserService userService就可以用了。祝楼主好运!