autowired多例
时间: 2024-03-14 09:17:16 浏览: 49
在Spring中,@Autowired注解默认情况下会注入一个单例对象,如果我们需要注入多个实例对象,可以使用@Qualifier注解来指定要注入的具体实例。同时,我们还需要在类上添加@Scope注解,将其作用域设置为prototype,表示每次注入都会创建一个新的实例。
例如,我们有一个UserService接口和两个实现类UserServiceImpl1和UserServiceImpl2,需要在另一个类中注入这两个实现类的实例对象,可以按以下方式进行:
```java
@Service
@Scope("prototype")
public class UserServiceImpl1 implements UserService {
// 实现类1的代码
}
@Service
@Scope("prototype")
public class UserServiceImpl2 implements UserService {
// 实现类2的代码
}
@Service
public class UserClient {
@Autowired
@Qualifier("userServiceImpl1")
private UserService userService1;
@Autowired
@Qualifier("userServiceImpl2")
private UserService userService2;
// 使用userService1和userService2进行业务逻辑处理
}
```
在上面的代码中,我们在UserServiceImpl1和UserServiceImpl2类上添加了@Scope("prototype")注解,将其作用域设置为prototype。在UserClient类中,我们使用@Qualifier注解来指定要注入的具体实例,并且通过@Autowired注解将其注入到变量中。这样,每次注入UserService时,Spring都会创建一个新的实例对象。
阅读全文