少年西西 2021-01-04 16:57 采纳率: 50%
浏览 133

Springboot 中@Autowired注入失败

DepartmentMapper.java

public interface DepartmentMapper {
    int deleteByPrimaryKey(Integer deptno);

    int insert(Department record);

    Department selectByPrimaryKey(Integer deptno);

    List<Department> selectAllDepartment();

    int updateByPrimaryKey(Department record);
}

DepartmentMapperImpl.java

package com.loey.mapper;

import com.loey.model.Department;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;
import java.util.*;

/**
 * @ClassName DepartmentMapperImpl
 * @Author loey
 * @Date Create in 2021/1/1 21:44
 * @Version 1.0
 **/
@Repository
public class DepartmentMapperImpl implements DepartmentMapper {


    private static Map<Integer,Department> map = null;

    static{

        map = new HashMap<Integer,Department>();

        map.put(10,new Department(10,"人事部","北京"));
        map.put(20,new Department(20,"财务部","北京"));
        map.put(30,new Department(30,"后勤部","北京"));

    }

    @Override
    public int deleteByPrimaryKey(Integer deptno) {

        map.remove(deptno);
        return 0;
    }

    @Override
    public int insert(Department record) {
        Integer deptno = record.getDeptno();

        map.put(deptno,record);
        return 0;
    }


    @Override
    public Department selectByPrimaryKey(Integer deptno) {

        Department department = map.get(deptno);

        return department;
    }

    @Override
    public List<Department> selectAllDepartment() {

        List<Department> departments = (List<Department>) map.values();
        return departments;
    }


    @Override
    public int updateByPrimaryKey(Department record) {

        Integer deptno = record.getDeptno();
        map.put(deptno,record);
        return 0;
    }
}

EmployeeMapper.java

package com.loey.mapper;

import com.loey.model.Employee;

import java.util.List;


public interface EmployeeMapper {
    int deleteByPrimaryKey(Integer empno);

    int insert(Employee record);

    Employee selectByPrimaryKey(Integer empno);

    List<Employee> selectAllEmployees();

    int updateByPrimaryKey(Employee record);
}

EmployeeMapperImpl.java

package com.loey.mapper;

import com.loey.model.Department;
import com.loey.model.Employee;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;


import javax.annotation.PostConstruct;
import java.util.*;

/**
 * @ClassName EmployeeMapperImpl
 * @Author loey
 * @Date Create in 2021/1/1 18:50
 * @Version 1.0
 **/

@Repository
public class EmployeeMapperImpl implements EmployeeMapper {

//    @Autowired不能给静态变量注入
    private static DepartmentMapper departmentMapper;

    @Autowired
    private DepartmentMapper myDepartmentMapper;

    @PostConstruct
    public void init(){
        departmentMapper = this.myDepartmentMapper;
        System.out.println(departmentMapper);
    }

    //模拟数据库中的数据
    private static Map<Integer,Employee> employees = null;

    static {
        employees = new HashMap<Integer,Employee>();//创建一个员工表

        employees.put(1,new Employee(1,"zhangsan","sing",2,new Date(2001,10,8),100000.0,10.0,10,departmentMapper.selectByPrimaryKey(10)));
        employees.put(2,new Employee(2,"lisi","dance",3,new Date(2002,10,8),10000.0,5.0,30,departmentMapper.selectByPrimaryKey(30)));
        employees.put(3,new Employee(3,"wangwu","sing",null,new Date(2003,10,8),200000.0,10.0,20,departmentMapper.selectByPrimaryKey(20)));
    }


    //主键自增
    private static Integer initId = 3;

    @Override
    public int deleteByPrimaryKey(Integer empno) {

        employees.remove(empno);

        return 0;
    }

    @Override
    public int insert(Employee record) {

        initId++;

        Integer deptno = record.getDeptno();

        Department department = departmentMapper.selectByPrimaryKey(deptno);

        record.setDepartment(department);

        record.setEmpno(initId);

        employees.put(initId,record);

        return 0;
    }


    @Override
    public Employee selectByPrimaryKey(Integer empno) {

        Employee employee = employees.get(empno);
        System.out.println(employee);
        return employee;
    }

    @Override
    public List<Employee> selectAllEmployees() {

        List<Employee> Allemployees = (List<Employee>) EmployeeMapperImpl.employees.values();

        return Allemployees;
    }

    @Override
    public int updateByPrimaryKey(Employee record) {

        Integer empno = record.getEmpno();

        employees.put(empno,record);
        return 0;
    }
}

这是我的代码,运行时报空指针异常。bean注入不成功

  • 写回答

7条回答 默认 最新

  • 流光Wyatt 2021-01-04 17:40
    关注

    那你就@Resource按名称注入

    评论

报告相同问题?

悬赏问题

  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭