Spring学习(二)注解配置
1、注解标识组件
-
普通组件:@Component (常用于用于除以下的其他层)
标识一个受Spring IOC容器管理的组件
-
持久化层组件:@Respository (常用于Dao层)
标识一个受Spring IOC容器管理的持久化层组件
-
业务逻辑层组件:@Service (常用于Service)
标识一个受Spring IOC容器管理的业务逻辑层组件
-
表述层控制器组件:@Controller (常用于servlet层)
标识一个受Spring IOC容器管理的表述层控制器组件
-
组件命名规则
- 默认情况:使用组件的简单类名首字母小写后得到的字符串作为bean的id
- 使用组件注解的value属性指定bean的id
注意:事实上Spring并没有能力识别一个组件到底是不是它所标记的类型,即使将@Respository注解用在一个表述层控制器组件上面也不会产生任何错误,所以@Respository、@Service、@Controller这几个注解仅仅是为了让开发人员自己明确当前的组件扮演的角色。
2、组件扫描
只通过上面的注解标识后 还需要通过Spring扫描才能够侦测到
<!----context:component-scan 自动组件扫描 base-package 指定基础包-->
<context:component-scan base-package="com.song"></context:component-scan>
- base-package属性指定一个需要扫描的基类包,Spring容器将会扫描这个基类包及其子包中的所有类。
- 当需要扫描多个包时可以使用逗号分隔。
- 如果仅希望扫描特定的类而非基包下的所有类,可使用resource-pattern属性过滤特定的类