IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring中自动装配和中注解
2023-12-16 21:30:08
第一章 Spring中自动装配【基于XML】
1.1 Spring中提供两种装配方式
- 手动装配
- 自动装配
1.2 Spring自动装配语法及规则
-
在bean标签中添加属性:Autowire即可
-
byName:对象中属性名称与容器中的beanId进行匹配,如果属性名与beanId数值一致,则自动装配成功
-
byType:对象中属性类型与容器中class进行匹配,如果唯一匹配则自动装配成功
-
匹配0个:未装配
-
匹配多个,会报错
expected single matching bean but found 2: deptDao,deptDao2
-
-
-
注意:基于XML方式的自动装配,只能装配非字面量数值
1.3 总结
- 基于xml自动装配,底层使用set注入
- 最终:不建议使用byName、byType,建议使用注解方式自动装配
第二章 Spring中注解【非常重要】
2.1 使用注解将对象装配到IOC容器中
约定:约束>配置【注解>XML】>代码
位置:在类上面标识
注意:
- Spring本身不区分四个注解【四个注解本质是一样的@Component】,提供四个注解的目的只有一个:提高代码的可读性
- 只用注解装配对象,默认将类名首字母小写作为beanId
- 可以使用value属性,设置beanId;当注解中只使用一个value属性时,value关键字可省略
-
装配对象四个注解
- @Component:装配普通组件到IOC容器
- @Repository:装配持久化层组件到IOC容器
- @Service:装配业务逻辑层组件到IOC容器
- @Controller:装配控制层|表示层组件到IOC容器
-
使用注解步骤
-
导入相关jar包【已导入】
-
开启组件扫描
<!-- 开启组件扫描 base-package:设置扫描注解包名【当前包及其子包】 --> <context:component-scan base-package="com.atguigu"></context:component-scan>
-
使用注解标识组件
-
2.2 使用注解装配对象中属性【自动装配】
-
@Autowired注解
-
作用:自动装配对象中属性
-
装配原理:反射机制
-
装配方式
-
先按照byType进行匹配
-
匹配1个:匹配成功,正常使用
-
匹配0个:
-
默认【@Autowired(required=true)】报错
/*expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} */
-
@Autowired(required=false),不会报错
-
-
匹配多个
-
再按照byName进行唯一筛选
-
筛选成功【对象中属性名称==beanId】,正常使用
-
筛选失败【对象中属性名称!=beanId】,报如下错误:
//expected single matching bean but found 2: deptDao,deptDao2
-
-
-
-
-
@Autowired中required属性
- true:表示被标识的属性必须装配数值,如未装配,会报错。
- false:表示被标识的属性不必须装配数值,如未装配,不会报错。
-
-
@Qualifier注解
- 作用:配合@Autowired一起使用,将设置beanId名称装配到属性中
- 注意:不能单独使用,需要与@Autowired一起使用
-
@Value注解
- 作用:装配对象中属性【字面量数值】
文章来源:https://blog.csdn.net/ZCY5202015/article/details/135037573
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!