<!-- 这里必须写这个才能注入成功--> <context:annotation-config /> <bean name="userDAO" class=" pl" > <property name= "daoId" value ="1"></ property> </bean > <bean id="userService" class=" ice" > <!-- <property name="userDAO" bean="u" />修改为下 面的样子--> <!-- <property name= "userDAO" ref = "userDAO" /> --> 1 </bean > </beans> 2. <context:annotation-config />的作用 它的作用是初始化了 AutowiredAnnotationBeanPostProcessor, CommonAnnotationBeanPostProcessor,PersistenceAnnot ationBeanPostProcessor, as well as the aforementioned RequiredAnnotationBeanPostProcessor 记住这些就是用来处理我们注解的bean (通过byType来注入的) 注入 public class UserService {
private UserDAO userDAO;
public UserDAO getUserDAO() { return userDAO ; } ***@Autowired public void setUserDAO(UserDAO userDAO) { this .userDAO = userDAO; } public void addUser(User user ){ (user);
}; } 最好写在setter 上面,如果写在 private UserDAO userDAO;上面,破换封装性 4.***@Resource(默认是byName方法来注入)注入 2 public class UserService {
private UserDAO userDAO; //现在是这样,通过配置文件来实 例化
public UserDAO getUserDAO() { return userDAO ; } ***@Resource public void setUserDAO(UserDAO userDAO) { this .userDAO = userDAO; } public void addUser(User user ){ (user);