Spring bean基于注解开发
Spring的开发可以基于xml配置文件也可以基于注解开发,各有优点(注解开发块,xml后期修改查看方便)
要使用注解首先要配置扫描组件:即<context:component-scan>配置
特定组件包括:
1.@Component:基本注解,标识一个受Spring管理的组件
2.@Respository:标识持久层组件
3.@Service:标识服务层(业务层)组件
4.@Controller:标识表现层组件(Struts2.x里的Action)
备注:对于扫描到的组件,Spring有默认的命名策略:使用非限定类名,第一个字母小写。也可以在注解中通过value属性值标识组件的名称。
<context:component-scan>配置中有一些配置:比如过滤器之类的。
组件装配(自动装配)
使用@Autowired可以使的属性自动装配(类似有@Resource、@Inject)
构造器、普通字段(即使是private),一切具有参数的方法都可以使用@Autowired注解
默认情况下,所有使用@Autowired注解的属性都需要被设置,当Spring找不到匹配的Bean装配属性时,会抛出异常。若某一属性允许不被设置,可以设置@Autowired注解的required属性为false。
默认情况下,当IOC容器存在多个兼容的Bean时,通过类型的自动装配将无法工作。此时可以增加一个@Qualifier注解提供Bean的名称。
举例:UserDao有两个实现UserDaoJdbcImpl、UserDaoHibernateImpl那么此时如果只使用@Autowired那么Spring 容器就无法判断到底是使用那个了