在service层注入mapper时报空指针

今天又遇到一个极其刁钻的问题
废话不多说先上代码,测试单元

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBoot_Run.class)
@ContextConfiguration(locations = { "classpath:mybatis/mappers/RevMapper.xml" })
public class TestTransaction {
	@Autowired
	RevMapper remapper;
	@Test
	public void testInsert() {
		ReData data = new ReData();
		data.setReTime(new Date()).setSeID("fdewfcdsfdssdfdsf").setSendDate(new Date());
		remapper.insertObject(data);
		
	}

然后是service代码

public class ReService {
	
	@Autowired
	private RevMapper reMapper;
	
	private Socket socket=null;
	private BufferedReader br=null;
	private PrintWriter pw=null;
	public void recevice() {
		try {
			 //创建服务器,并开放3081端口
			   ServerSocket serv
``

RevMapper 类在测试的时候注入的好好地,为毛在service中就是空,一直空,空空空!!!
网上说的@mapperScan还有@mapper的注解我都加了一遍,这是为毛!!!!!
在博览全部大神的CSDN中,我发现大家都是抄过来抄过去,小弟佩服!!
后来解决了!!!
因为我在启动类是这样写的

@SpringBootApplication(exclude=DataSourceAutoConfiguration.class)
@MapperScan(“cn.yungtay.mapper”)
public class SpringBoot_Run {
public static void main(String[] args) {

	SpringApplication.run(SpringBoot_Run.class, args);
	ReMapper re=new ReMapper();
	re.receive;
}

}

厉害的欧巴们不要喷,我第一反应是这样的!!
问题出来了,当一个对象是new出来的时候,他是不交给spring管理的,所以对象根本注入不进去,null是理所当然的
第二个问题,你想一个方法随着主启动类而启动,你可以这么干

@Service
public class ReService implements ApplicationRunner{

@Autowired
private RevMapper reMapper;

private Socket socket=null;
。。。。。。。。。。。。。
@Override
public void run(ApplicationArguments args) throws Exception {
	// TODO Auto-generated method stub
	你所需要启动的方法XXXXXXXX
}
感觉自己又智慧了一点,阿西吧!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值