在一个非bean类 new对象时 获取一个其他的bean
时间: 2024-03-13 13:44:04 浏览: 21
如果您在一个非 Spring Bean 类中需要使用其他 Spring Bean,您可以通过在该类中注入一个 `ApplicationContext` 对象来获取该 Bean。您可以使用 `ApplicationContext` 对象的 `getBean()` 方法来获取其他 Bean 的实例。以下是一个示例:
1. 创建一个普通的 Java 类,例如:
```java
public class MyObject {
// ...
}
```
2. 在 Spring Boot 应用程序中,将该类标记为 Spring Bean,例如:
```java
@Component
public class MyObject {
// ...
}
```
3. 在一个非 Spring Bean 类中,注入一个 `ApplicationContext` 对象,例如:
```java
public class MyOtherObject {
@Autowired
private ApplicationContext applicationContext;
public void doSomething() {
MyObject myObject = applicationContext.getBean(MyObject.class);
// use myObject...
}
}
```
在上面的例子中,`MyOtherObject` 是一个普通的 Java 类,它不是一个 Spring Bean。但是,它注入了一个 `ApplicationContext` 对象,通过该对象可以获取其他 Spring Bean 的实例。在 `doSomething()` 方法中,我们使用 `applicationContext.getBean(MyObject.class)` 获取了 `MyObject` 的实例。然后,我们可以使用该实例执行任何操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)