Spring配置--Bean之间的关系(继承和依赖)

Bean之间的继承:
 Spring 允许继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean
子Bean从父Bean中继承配置,包含Bean的属性配置
子Bean也可以覆盖从父Bean继承过来的属性
父Bean可以作为配置模板,也可以作为Bean实例,若只想吧父Bean作为模板,可以设置Bean的abstract属性为true 这样Spring将不会实例化这个Bean
并不是<bean>元素里的所有的属性都会被继承比如autowire abstract等。
也可以忽视父Bean的class属性让子Bean指定自己的类,而共享相同的属性配置,但此时abstract 属性必须是ture
抽象Bean: bean的abstract属性为true 这样的 bean不能被IOC容器实例化,只能用来继承 配置
依赖Bean配置:
Spring允许用户通过depends-on属性设定Bean前置依赖的Bean ,前置依赖的Bean会在本Bean实例化之前创建好 。
如果前置依赖多个Bean,则 可以通过逗号,空格的方式配置Bean的名称


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


<bean id="adress" class="com.imooc.spring.spring_day01.Adress"
p:city="BeiJing" p:stree="QingPu"></bean>

<bean id="adress2" class="com.imooc.spring.spring_day01.Adress"
p:city="BeiJing" p:stree="XuHui"></bean>
<!--继承的方式
使用Bean的parent属性指定继承哪个bean的属性  -->
<bean id="adress3" parent="adress" p:stree="PuDongXinQu"></bean>

<bean id="car" class="com.imooc.spring.spring_day01.CarAutowire"
p:brand="Auti" p:price="20000"></bean>
<!--依赖的方式
  要求配置Person时 必须有关联的car 换句话就是Person这个bean依赖于Car 这个bean
  -->
  <bean id = "person" class="com.imooc.spring.spring_day01.PersonAutowire"
  p:name="曹永芳" p:adress-ref="adress" depends-on="car"></bean>
</beans>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 2.1.1 版本中,使用 spring-elasticsearch 时出现 "No qualifying bean" 错误通常是由于以下原因导致的: 1. 缺少必要的依赖:请确保您的项目中已经正确添加了 spring-elasticsearch 的依赖。在 Maven 或 Gradle 构建文件中检查依赖是否正确引入。 2. 没有正确配置 Elasticsearch 相关的属性:在您的应用程序配置文件(例如 application.properties 或 application.yml)中,确保已经配置了正确的 Elasticsearch 连接属性,例如主机名、端口号等。还要确保您的配置文件位于正确的位置,并且被正确加载。 3. 缺少对 ElasticsearchRepository 的实现类:请确保您的项目中存在一个继承自 ElasticsearchRepository 的接口,并且有一个具体的实现类。实现类需要添加 `@Repository` 注解,以便被 Spring 自动发现并注入。 4. 包扫描问题:如果您的实现类不在 Spring 扫描的包路径下,Spring 可能无法自动发现该类。请确保您的实现类在正确的包路径下,并且包扫描配置正确。 5. 版本兼容性问题:请确保您使用的 spring-elasticsearch 版本与 Spring Boot 2.1.1 兼容。有时候特定版本的库可能不兼容,建议查看官方文档或社区支持来确认版本兼容性。 请检查以上可能导致错误的原因,并逐一排除。如果问题仍然存在,请提供更多的错误信息、配置以及依赖信息,以便更详细地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值