1. 使用注解实现IOC
注解方式可以将Bean的定义信息和Bean实现类结合在一起,Spring提供的注解有:
@Component:实现Bean组件的定义。
@Repository :用于标注DAO类。
@Service :用于标注业务类。
@Controller :用于标注控制器类。
例如以下代码,指明userDao是UserDaoImpl的实例名称:
@Repository("userDao")
public class UserDaoImpl implements UserDao {
…
}
上述与在XML配置文件中编写
<bean id="userDao" class="dao.impl.UserDaoImpl" />
使用@Autowired注解实现Bean的自动装配,默认按类型匹配,可以使用@Qualifier指定Bean的名称,对类的成员变量进行标注:
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
@Qualifier("userDao")
private UserDao dao; //对类的成员变量进行标注
……
}
也可以对方法的入参进行标注:
@Service("userService")
public class UserServiceImpl implements UserService {
private UserDao dao;
@Autowired
public void setDao((@Qualifier("userDao") UserDao dao) {
this.dao = dao;
}
……
}
配置文件中指定需要扫描的基类包,多个包可用逗号隔开:
<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/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- 扫描包中注解标注的类 -->
<context:component-scan base-package="service,dao" />
</beans>