0

我将使用 Swing、Spring 框架和 Hibernate 开发桌面应用程序。我想通过使用注释来映射 POJO。我开发了一个代码但我不知道哪里出了问题......这是我的应用程序的快照。

POJO:

@Table(name = "emp_master", schema = "test")
public class EmpMaster extends Model {
    private Integer empId;
    private String empName;
    private Double salary;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "emp_id", unique = true, nullable = false, precision = 131089, scale = 0)
    public Integer getEmpId() {
        return empId;
    }
    public void setEmpId(Integer empId) {
        this.empId = empId;
    }

我的主要 GUI 类:

 public static void main(String args[]) {       
        String[] contextPaths = new String[]{"ApplicationContext.xml"};
        new ClassPathXmlApplicationContext(contextPaths);

此类包含通过单击我要保存记录的按钮的按钮。按钮的 actionListener 下的代码:

private IEmpMasterService empMasterService;
//getter setter for empMasterService//

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {         
        String name = jTextField1.getText();
        String salary = jTextField2.getText();
        EmpMaster empMaster = new EmpMaster();
        empMaster.setEmpName(name);
        empMaster.setSalary(Double.parseDouble(salary));  
 //at this line I get error NullPointerException     
        InternalResultsResponse<EmpMaster> response = getEmpMasterService().maintainEmpMaster(empMaster);         
    }

IEmpMasterService是一个包含 id、name、salary 的接口。
在 Pojo-def.xml 中:

    <context:annotation-config />
    <context:component-scan base-package="org" /> 
<import resource="datasource.xml" />
       <bean id="mainFrame" class="org.UI.EmpManager">
        <property name="title"> <value>Spring Example</value></property>            
    </bean>     
    <bean id="empManager" class="org.UI.EmpManager">
        <property name="empMasterService" ref="empMasterServiceImpl"></property>
    </bean> 
    <bean id="empMasterServiceImpl" class="org.service.EmpMasterService">
        <property name="empMasterDAO" ref="empMasterDAOTarget"></property>
    </bean> 
    <bean id="empMasterDAOTarget" class="org.DAO.EmpMasterDAO">
        <property name="hibernateTemplate" ref="matrixHibernateTemplate"/>
    </bean>

我已经正确创建了所有服务类和 dao 类,我还配置了 datasource.xml 并且在单独的项目中工作,但是我在主 GUI 类中遇到错误getEmpMasterService()NullPointerException
我认为将接口映射到实现者类有问题,谁能告诉我我做错了什么?

4

1 回答 1

1

我认为您从中提供的信息,原因之一可能是,在 EmpMasterService 的 Pojo-def.xml 文件中,Id 是“ empMasterServiceImpl ”,但在保存记录代码 EmpMasterService 服务中,对象名称为“ empMasterService ”。因此无法设置 EmpMasterService 的对象。

于 2012-06-04T12:41:09.560 回答