springboottest 注入service对象为null或找不到方法

junit4加入

@RunWith(SpringRunner.class) //主要
@SpringBootTest(classes = MyApplication.class)  //MyApplication是springboot启动类

@Test注解使用org.junit.Test的就行。

package com.company.demo;

import com.company.demo.corporatemember.service.impl.EnterpriseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyApplication.class)
@Slf4j
public class MyTest{

	@Autowired
	private EnterpriseServiceImpl enterpriseServiceImpl; //mybatisplus生成的service

//	@Autowired
//	private EnterpriseMapper enterpriseMapper;	//mybatisplus生成的mapper

	@Test
	public void getMemberInfo() {
		String data = "data";
		enterpriseServiceImpl.getMemberInfoToUpdate(data);
	}

}

如果是找不到方法,看看test目录下,是不是有同名类,测试类引入了不正确的类造成的。

junit5,应该是这样

@ExtendWith(SpringExtension.class)
@SpringBootTest

相关

springboot 2.0 springboottest 事物自动回滚,事物不自动回滚 @Transactional @Rollback_@rollback的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可能是以下原因导致Spring Boot注入Servicenull: 1. 没有在Service上添加@Service注解,导致Spring无法识别该Service。 2. 没有在Controller中添加@Autowired或@Resource注解,导致Service无法被注入。 3. Service的构造函数没有被正确实现,导致Spring无法正确实例化该。 4. Service的命名不符合Spring的命名规范,导致Spring无法正确识别该。 5. Service所在的包没有被正确扫描,导致Spring无法到该。 如果以上原因都不是导致注入Servicenull的原因,可以尝试重启应用程序或检查依赖项是否正确引入。 ### 回答2: Spring Boot是一个轻量级的开发框架,具有自动配置和快速启动等特点,适用于快速开发中小型应用程序。在使用Spring Boot的过程中,我们可以使用依赖注入(DI)来管理对象之间的依赖关系。但有时候,我们在注入service的时候会发现它为null。 1. 检查@Service注解 @Service注解用于标识该是一个服务,如果没有添加该注解或者注解名称有误,则Spring会无法识别服务,导致注入servicenull。因此,需要检查@Service注解是否正确地添加到服务上。 2. 检查@ComponentScan配置 @ComponentScan用于指定Spring框架需要扫描的包路径,如果没有配置或者指定的路径有误,则Spring会无法扫描到服务,导致注入servicenull。因此,需要检查@ComponentScan配置是否正确地添加在程序的入口处。 3. 检查@Autowired注解 @Autowired注解用于标识需要自动装配依赖关系的、属性或构造函数。如果没有使用该注解或者注解名称有误,则Spring会无法自动注入service,导致注入servicenull。因此,需要检查@Autowired注解是否正确地添加到需要注入service上。 4. 检查@Service是否实现了接口 在服务中,如果没有实现任何接口,则无法使用接口注入service。如果必须使用接口注入,则需要先定义接口,再在服务中实现该接口。否则,在注入service时会发生空指针异常。 5. 检查@Autowired注解的位置是否正确 @Autowired注解有两种用法,一种是使用在字段上,如:@Autowired private UserService userService;另一种是使用在构造函数中,如: @Autowired public UserController(UserService userService) { this.userService = userService; } 如果在使用构造函数注入时,需要确保@Autowired注解在构造函数上,而非字段上。 总之,springboot注入servicenull的原因可能有很多,需要仔细检查以上几个方面。只要到原因,解决问题也就不难了。 ### 回答3: 在使用Spring Boot注入Service时,遇到Servicenull的问题,常见的原因有以下几种: 1.未使用@ServiceService注释为一个Spring组件 在Service中,需要使用注解@Service来将其注释为一个Spring组件,才能被Spring Boot扫描并实例化。如果Service未被注释为Spring组件,则在注入时会出现null指针异常。 2.未使用@Autowired注入Service 在使用Service时,需要在需要使用该Service中使用@Autowired注入Service,以便Spring Boot将其注入。如果未使用@Autowired来注入Service,则在使用该Service时会出现null指针异常。 3.未在配置文件中配置Service的实例化 在配置文件中,需要将Service的实例化配置到Spring Boot的上下文中,以便Spring Boot能够创建关于该的Bean定义,并将其实例化。如果未在配置文件中配置Service的实例化,则在注入时会出现null指针异常。 4.未正确书写Service名 在注入时,需要正确书写Service的名称。如果未正确书写Service的名称,或者名与文件名不一致,则在注入时会出现null指针异常。 5.循环依赖 在使用Spring Boot时,如果Service存在循环依赖,则在注入时会出现null指针异常。此时需要使用@Lazy注解来解决循环依赖问题,同时需要注意循环依赖可能存在的性能问题。 综上所述,当出现Spring Boot注入Servicenull的情况时,应该检查是否正确使用了@Service和@Autowired注解,是否在配置文件中配置了Service的实例化,是否正确书写了名,并且是否存在循环依赖等情况。到问题所在后,进行相应的修正即可解决该问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值