5. Spring IoC 容器配置-注解方式
5.1 注解定义Bean对象
-
在Bean class 添加 注解
Spring2.5 提供 @Component 效果相当于
<bean>元素

-
配置包扫描,通知spring 注解Bean 在哪个包下面
使用
<context>命名空间 ,在spring的配置文件中添加context命令空间![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkF41nFo-1670413554236)(assets/image-20220731182821091.png)]](https://img-blog.csdnimg.cn/3837fcc1d1a3471dad9a90c275bf96b9.png)
<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注解
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGLKf2bi-1670413554239)(assets/image-20220731183503395.png)]](https://img-blog.csdnimg.cn/8c24b3ef8fa1420d9cc0447375e8ba3c.png)
- Spring2.0 提供@Autowired 注解 结合 @Qualifier 注解

或者:

- 单独使用@Autowired,表示按照类型匹配注入
- @Autowired结合@Qualifier(“bean名称”),表示按照bean的name进行匹配注入
- JSR-250规范 提供 @Resource 注解实现注入
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1RAaisU-1670413554241)(assets/image-20220731183920943.png)]](https://img-blog.csdnimg.cn/ae01680f6aa74c858628f5bd0d6df5cd.png)
或者:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvrzivCV-1670413554242)(assets/image-20220731183958350.png)]](https://img-blog.csdnimg.cn/7fb33344e64e4bf18041ed00fcfb87e7.png)
- @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 !






![[附源码]Python计算机毕业设计SSM家用饰品在线销售系统(程序+LW)](https://img-blog.csdnimg.cn/b20df7d07aa246c7ad3735a1d742863a.png)












