java中使用注解注入bean有哪些注解,举例说明
时间: 2023-09-28 19:12:25 浏览: 90
在Java中,使用注解进行依赖注入可以使用多种注解,主要包括:
1. @Autowired:自动装配注解,通过该注解可以自动将需要依赖的Bean注入到当前Bean中。
2. @Qualifier:当有多个同类型的Bean时,使用该注解可以指定具体注入哪个Bean。
3. @Resource:与@Autowired类似,也是自动装配注解。不过,@Resource注解可以指定Bean的名称,而@Autowired注解则需要结合@Qualifier注解一起使用。
4. @Value:用于注入简单类型的属性值,如字符串、数字等。
举例说明:
```java
@Component
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User getUserById(int id) {
return userDao.getUserById(id);
}
}
```
上述代码中,通过@Autowired注解将UserDao对象注入到UserService实现类中。
```java
@Component
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("userDaoImpl1")
private UserDao userDao;
@Override
public User getUserById(int id) {
return userDao.getUserById(id);
}
}
```
上述代码中,当有多个UserDao类型的Bean存在时,通过@Qualifier注解指定具体注入哪个Bean。
```java
@Component
public class UserServiceImpl implements UserService {
@Resource(name = "userDaoImpl1")
private UserDao userDao;
@Override
public User getUserById(int id) {
return userDao.getUserById(id);
}
}
```
上述代码中,通过@Resource注解指定需要注入的Bean的名称。
```java
@Component
public class UserServiceImpl implements UserService {
@Value("${user.default.name}")
private String defaultUserName;
@Override
public User getDefaultUser() {
User user = new User();
user.setName(defaultUserName);
return user;
}
}
```
上述代码中,通过@Value注解注入配置文件中的属性值。其中,${user.default.name}是配置文件中的属性名。
阅读全文