下面是关于Spring自动装配@Autowired的详细攻略:
什么是Spring自动装配@Autowired
在Spring中,我们说的自动装配(autowiring)是指通过容器自动连接两个或多个不同的bean。当有多个bean可以注入在一个类中时,Spring会自动为我们选择正确的bean并注入。而@Autowired则是Spring提供的一种自动装配的方式,通过@Autowired注解可以让Spring自动为我们完成bean的注入。
注:在使用@Autowired时需要在类中配置@ComponentScan配置扫描的路径。
如何使用@Autowired实现自动装配
在实际开发中,使用@Autowired时我们需要在需要注入bean的地方添加@Autowired注解即可完成bean的注入。举个栗子:
1.通过构造方法注入
@Component
public class UserService {
private UserDao userDao;
@Autowired
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public void addUser(User user) {
userDao.addUser(user);
}
}
在上面的代码中,通过构造方法注入的方式完成了userDao的注入,当Spring容器需要创建UserService的实例时,会自动为构造方法注入一个UserDao的实例对象。
2.通过属性注入
@Component
public class UserService {
@Autowired
private UserDao userDao;
public void addUser(User user) {
userDao.addUser(user);
}
}
在上面的代码中,通过属性注入的方式完成了userDao的注入,在Spring容器创建UserService的实例时,会自动为userDao属性注入一个UserDao的实例对象。
实例演示
我们通过以下两个实例进行演示:
1.通过构造方法注入
@Component
public class UserDao {
public void addUser(User user) {
System.out.println("添加用户成功!");
}
}
@Service
public class UserService {
private UserDao userDao;
@Autowired
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public void addUser(User user) {
userDao.addUser(user);
}
}
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/add", method = RequestMethod.GET)
public String add(User user) {
userService.addUser(user);
return "index";
}
}
在上面的代码中,我们使用了构造方法注入的方式,在UserService的构造方法上添加@Autowired注解,完成了UserDao的自动注入,UserController注入了UserService。
2.通过属性注入
@Component
public class UserDao {
public void addUser(User user) {
System.out.println("添加用户成功!");
}
}
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void addUser(User user) {
userDao.addUser(user);
}
}
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/add", method = RequestMethod.GET)
public String add(User user) {
userService.addUser(user);
return "index";
}
}
在上面的代码中,我们使用了属性注入的方式,在UserService的userDao属性上添加@Autowired注解,完成了UserDao的自动注入,UserController注入了UserService。
总结
本文介绍了Spring自动装配@Autowired的使用方法及示例,使用@Autowired可以帮助我们更加方便的完成bean的自动注入。通过以上代码示例,相信大家已经掌握了@Autowired的基本使用方法,可以在实际项目中进行灵活使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring自动装配@Autowired教程 - Python技术站