Springboot @Component 使用@Autowired引用bean失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot @Component 使用@Autowired引用bean失败相关的知识,希望对你有一定的参考价值。

参考技术A 解决方案
1、被引用的bean,部分可以转换成静态方法,如果工具类里面还需要@Autowired引入其他的bean,可以

2、在引用类下,使用 @PostConstruct

3、@Confuguation结合#ConfigurationScan(basePackages="xxxxx")

4、@Component标注的类下使用@Value读取配置的值失败。修改如下:

SpringBoot学习:注解

spring学习最重要的就是注解吧。。。

1.Bean的声明

@Component组件,没有明确的角色。
@Service在业务逻辑层(service层)使用。
@Repository在数据访问层(dao层)使用。
@Controller在展现层(MVC→Spring MVC)使用。

特别说明:

在声明普通Bean的时候,使用@Component、@Service、@Repository和@Controller是等同的,因为@Service、@Repository、@Controller都组合了@Compoment元注解;

但在Spring MVC声明控制器Bean的时候,只能使用@Controller。

@Controller将其声明为Spring的一个Bean,并将Web请求映射到注解了@RequestMapping的方法上

例子:

@Control ler
@RequestMapping ( ”/test")
public class HelloworldController {
    @RequestMapping ( ”/index.html ” )
    public String say (Model model) {
        model.addAttribute ( ”name”,”hello,world" ) ;
        return ”/index.btl ”;
    }
}
如以上代码所示,@Controller 作用于类上, 表示这是一个MVC 中的Controller 。
@RequestMapping 既可以作用在方法上, 也可以作用在类上。如上例所示,用户如果访问/test/index.html ,则会交给HelloworldController.say 方法来处理。

2.Bean的注入

@Autowired

可注解在set方法上或者属性上,笔者习惯注解在属性上,优点是代码更少、层次更清晰

3.常用注解说明

@RestController 相当于@Controller和@ ResponseBody

 

以上是关于Springboot @Component 使用@Autowired引用bean失败的主要内容,如果未能解决你的问题,请参考以下文章

(Framework7 移动webapp) Springboot 入门培训 8 Component 模板MVVM与AJAX

springboot component注入servecie

SpringBoot@Component和@Bean的区别

SpringBoot@Component和@Bean的区别

Spring Boot 2 - 在@Configuration 之前加载@Component

SpringBoot学习:注解