后端-框架-Spring-IoC-注解注入
通过注解来代替在ApplicationContext设置bean标签
注解 | Value |
---|
@Service("") | |
@Autowired | 先按类名,再按属性名 |
@Qualifier("") | |
@Resource(name="") | 先按属性名,再按类名 |
@Service("UserDao")
public class UserDaoImpl implements UserDao {
public void save(User user) {
System.out.println("保存用户信息到数据库");
}
}
通过类中属性设置注解1
@Autowired
@Service("UserService")
public class UserServiceImpl implements UserService {
@Autowired(required=true)
@Qualifier("UserDao")
private UserDao dao;
public void setDao(UserDao dao) {
this.dao = dao;
}
public void addNewUser(User user) {
dao.save(user);
}
}
@Resource
@Service("UserService")
public class UserServiceImpl implements UserService {
@Resource(name="UserDao")
private UserDao dao;
public void addNewUser(User user) {
dao.save(user);
}
}
通过类中入参方法设置注解2
@Autowired
@Service("UserService")
public class UserServiceImpl implements UserService {
private UserDao dao;
@Autowired
public void setDao(@Qualifier("UserDao")UserDao dao) {
this.dao = dao;
}
public void addNewUser(User user) {
dao.save(user);
}
}
@Resource
@Service("UserService")
public class UserServiceImpl implements UserService {
private UserDao dao;
@Resource(name="UserDao")
public void setDao(UserDao dao) {
this.dao = dao;
}
public void addNewUser(User user) {
dao.save(user);
}
}
通过类中构造方法设置注解3
@Service("UserService")
public class UserServiceImpl implements UserService {
private UserDao dao;
@Autowired
public UserServiceImpl(@Qualifier("UserDao")UserDao dao) {
this.dao=dao;
}
public void addNewUser(User user) {
dao.save(user);
}
}
ApplicationContext.xml头文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd"
>
<context:component-scan base-package="cn.dao.cn.service"/>