在使用注解的时候,首先得在配置文件bean.xml中添加命名空间:
xmlns:context="http://www.springframework.org/schema/context"
然后在xsi:schemaLocation中添加:
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
再次引入:
<context:component-scan base-package="com.test"></context:component-scan>
它会扫描锁配置的包里面那些类注解了Component
bean.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:component-scan base-package="com.test"></context:component-scan> </beans>
UserDAOImpl.java
package com.test.dao.impl;
import org.springframework.stereotype.Component;
import com.test.dao.UserDAO;
import com.test.model.User;
@Component("userDAOImpl")
public class UserDAOImpl implements UserDAO {
public void save(User user) {
System.out.println("user saved!");
}
}
UserService.java
package com.test.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.test.dao.UserDAO;
import com.test.model.User;
@Component("userService")
public class UserService {
private UserDAO userDAO;
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
// 这里会找注解Component的值为:userDAOImpl的那个类
@Resource(name="userDAOImpl")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}
注:这里Resource注解要加入common-annotations.jar包