SpringBoot:Springboot项⽬中调⽤第三⽅jar包中的类时报错--注⼊类的两种⽅式前⾔
场景:将⼀些公共的⽅法封装成了⼀个jar包,在其他项⽬中进⾏引⽤的时候报错
报错原因:bean没有注⼊,引进来的jar包没有被spring管理,因为类没有被@Service,@Repository等类注解,如果我们想⽤@Autowired 注⼊也会报错
⽰例:
@Autowired
public UserService userService;
报错:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [com.lib.user.UserService] found for dependency:
expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations:
{@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class
java.lang.Object, mappedName=)}
解决⽅式(1)
创建配置类使⽤@Bean注解进⾏注⼊类。
spring怎么读取jar文件@Configuration
public class UserServiceConfig {
@Bean
UserService getUserService(){
UserService userService = new UserService();
return userService;
}
}
解决⽅式(2)
在启动类加上扫描注解@ComponentScan("/")
//⼿动加上@ComponentScan注解并指定那个bean所在的包
//@ComponentScan 的作⽤就是根据定义的扫描路径,把符合扫描规则的类装配到spring容器中
@ComponentScan(basePackages={"com.util.user"})
@SpringBootApplication
public class UserApplication {
public static void main(String[] args)
{
SpringApplication.run(UserApplication .class, args);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论