PostConstruct里调不通feign
时间: 2023-11-03 22:00:09 浏览: 69
@PostConstruct注解有一些限制,其中之一是被注解的方法不得调用feign接口,除非保证此方法能在feign初始化完成后调用。这是因为@PostConstruct注解的方法会在Bean初始化之后立即执行,而feign接口可能需要在应用程序的其他部分初始化完成后才能正常工作。所以,如果在@PostConstruct注解的方法中调用feign接口,可能会导致未初始化完成的feign接口出现问题。
如果想在应用程序启动完成后调用feign接口,可以考虑使用实现CommandLineRunner接口的方式。在run方法中调用初始化服务中的init方法可以实现这个目的。例如,在BuzConfigInitRunner类中实现CommandLineRunner接口,在run方法中调用buzConfigInitService.init()方法来初始化服务。
参考文献:
:https://blog.csdn.net/qwlzxx/article/details/77163268
相关问题
springboot @postconstruct 里面的autowired无法注入
SpringBoot是一个非常方便的框架,其注解功能可以让我们非常轻松地实现依赖注入功能。其中,@PostConstruct是一个非常实用的注解,可以在对象构造之后自动执行一些初始化操作。但是,有些时候,我们在@PostConstruct中使用@Autowired来注入依赖却发现注入失败。这通常是由于以下原因导致的:
1.类没有被Spring容器扫描到
如果类没有被Spring容器扫描到,那么该类的实例就不会在Spring容器中创建,自然也就无法完成依赖注入。这时候,我们需要检查一下这个类是否被@ComponentScan或者其他扫描注解扫描到了。
2.循环依赖
如果两个或者更多的类之间存在循环依赖的情况,那么它们之间是无法完成依赖注入的。这时候,我们需要检查一下类之间的依赖关系,尽量避免循环依赖的情况发生。
3.依赖类型不匹配
在@Autowired注入依赖时,默认是按照类型去匹配的。如果容器中存在多个符合条件的bean,那么就需要使用@Qualifier注解来指定特定的bean。如果注入失败,可以检查一下被注入的属性类型和容器中实际存在的bean类型是否一致,或者使用@Qualifier注解来明确指定需要注入的bean。
总的来说,如果@PostConstruct中的@Autowired无法注入依赖,我们需要仔细检查一下代码实现,看看是否存在以上这些问题。只有确定了问题出在哪里,我们才能够快速地解决它。
postconstruct
@PostConstruct是一个Java注解,用于标记一个方法,在Spring容器初始化时会自动调用该方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。它通常用于在初始化过程中执行一些特定的操作,比如数据的常规化加载或者一些耗时的初始化逻辑。
需要注意的是,被@PostConstruct修饰的方法需要满足以下条件:
1. 方法不能有任何参数。
2. 方法的返回值必须为void。
3. 方法不能抛出已检查异常。
4. 方法必须是非静态方法。
下面是一个示例代码,演示了如何使用@PostConstruct注解:
```java
import javax.annotation.PostConstruct;
public class MyBean {
@PostConstruct
public void init() {
// 在这里执行初始化操作
System.out.println("执行初始化操作");
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)