Spring学习:三、Spring IoC 容器配置-注解方式
5. Spring IoC 容器配置-注解方式
5.1 注解定义Bean对象
- 在Bean class 添加 注解 Spring2.5 提供 @Component 效果相当于 <bean> 元素
- 配置包扫描,通知spring 注解Bean 在哪个包下面 使用 <context> 命名空间 ,在spring的配置文件中添加context命令空间 <context:component-scan base-package="com.suke"/> Spring 容器提供@Component 等效三个衍生注解 @Repository 用于注册DAO(持久层 ) @Service 用于注册 Service(业务层) @Controller 用于注册 Action (表现层)
5.2 注解实现属性依赖注入
通过上一步,我们已经把UserDaoImpl和UserServiceImpl使用对应的注解,交给Spring管理了:
但是在我们的UserServiceImpl类中依赖UserDao, 那我们需要使用属性注入的注解把UserDao注入到UserServiceImpl类:
5.2.1 注入基本类型属性
简单类型属性注入,只有变量才有意义 !
Spring3.0之后,通过@Value注解 结合 spEL 表达式实现
5.2.2 注入类类型的属性
-
Spring3.0提供@Value注解
-
Spring2.0 提供@Autowired 注解 结合 @Qualifier 注解
或者:
单独使用@Autowired,表示按照类型匹配注入 @Autowired结合@Qualifier(“bean名称”),表示按照bean的name进行匹配注入
-
JSR-250规范 提供 @Resource 注解实现注入
或者:
@Resource没有写name,表示按照类型匹配注入 @Resource写name,表示按照bean的name进行匹配注入
-
JSR-330规范 提供 @Inject @Named 注解 需要导入javax.inject 的依赖:
或者:
只使用@Inject注解,表示按照类型匹配注入 @Inject配合@Named,表示按照bean的name进行匹配注入
5.3 Bean的作用域注解
<bean> 提供 scope属性,用于描述Bean的作用域
Spring提供@Scope注解,描述Bean的作用域
默认scope作用域 singleton !
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
js查找数组的重复项和对应的下标