Spring学习:三、Spring IoC 容器配置-注解方式

5. Spring IoC 容器配置-注解方式

5.1 注解定义Bean对象

  1. 在Bean class 添加 注解 Spring2.5 提供 @Component 效果相当于 <bean> 元素
  2. 配置包扫描,通知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 的依赖:
javax.inject javax.inject 1 ```

或者:

只使用@Inject注解,表示按照类型匹配注入 @Inject配合@Named,表示按照bean的name进行匹配注入

5.3 Bean的作用域注解

<bean> 提供 scope属性,用于描述Bean的作用域

Spring提供@Scope注解,描述Bean的作用域

默认scope作用域 singleton !
经验分享 程序员 微信小程序 职场和发展