Spring支持继承,可以分为类继承和属性继承
1. 类继承
Spring属性:
(1)abstract: 如果设置为true,表示定义的bean是抽象的,告诉spring不要实例化这个bean;
问题:必须是抽象类么?可以不是抽象类么?
(2)parent: 指明bean的id,对bean的作用,相当于extends对于java类的作用;
场景:有三个Bean:
<bean id = "bean1" class = "……TestBean">
<property name="sex" value="male"/>
</bean>
<bean id = "bean2" class = "……TestBean">
<property name="sex" value="male"/>
</bean>
<bean id = "bean3" class = "……TestBean">
<property name="sex" value="female"/>
</bean>
修改:定义spring 父bean
<bean id ="BaseBean" class ="……TestBean">
<property name="sex" value="male"/>
</bean>
定义子Bean
<bean id ="bean1" parent = "BaseBean"/> 继承父Bean的属性
<bean id ="bean2" parent = "BaseBean"/>
<bean id ="bean3" parent = "BaseBean"> 覆盖父Bean的属性
<property name="sex" value="female"/>
</bean>
子bean可以继承父Bean的属性,也可以覆盖父Bean的属性
2. 属性继承
几个不同Bean之间存在相同的属性,可以抽离出来
场景:
<bean id = "bean1" class = "……ATestBean">
<property name="sex" value="male"/>
<property name="task" ref="task"/>
</bean>
<bean id = "bean2" class = "……BTestBean">
<property name="sex" value="male"/>
</bean>
修改:(1) 抽取公共属性
<bean id = "baseSex" abstract="true">
<property name="sex" value="male"/>
</bean>
(2)bean修改
<bean id = "bean1" class = "……ATestBean" parent="baseSex">
<property name="task" ref="task"/>
</bean>
<bean id = "bean2" class = "……BTestBean" parent="baseSex"/>
这里bean同时有parent和class属性,其中parent指向的baseSex,就是为了让不同Bean之间共享相同的属性值;在TransactionProxyFactoryBean声明业务时,Bean属性继承能够明显的减少冗余的xml配置。
分享到:
相关推荐
spring集成quartz2.2.1步骤,包括具体代码,欢迎下载
Struts1、Spring和Hibernate是Java Web开发中的三个重要框架,它们各自负责应用程序的不同层面:Struts1主要用于表现层管理,Spring则是一个全面的后端框架,包括依赖注入、事务管理、AOP(面向切面编程)等,而...
在本文中,我们将深入探讨如何在SpringBoot项目中集成Spring Security来实现角色继承,并提供一个完整的源码示例。这将特别适用于初学者和开发者,帮助他们更好地理解Spring Security的安全特性。 首先,让我们理解...
在Spring框架中,继承、依赖和引用是核心的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)概念的重要组成部分。这些概念对于理解和使用Spring框架进行应用开发至关重要。以下是对...
当我们谈论"继承 空指针 spring"时,这通常涉及到Spring框架中的类继承和空指针异常(NullPointerException)问题。 首先,让我们讨论一下继承在Spring框架中的作用。在Spring中,我们经常通过继承来实现对服务层...
在Spring框架中,Bean的继承配置是一个非常关键的概念,它允许我们通过定义一个基础Bean配置,然后由其他Bean继承这个配置,实现配置的复用和扩展。这种方式在大型项目中非常常见,因为它使得代码更加模块化,易于...
常用四大连接池集合c3p0,dbcp,druid,HikariCP,内有四大连接池的使用方法,配置方法,以及它们之间的比较和介绍,和spring继承等配置方法。 c3p0 太古老,代码及其复杂,不利于维护。貌似都比它强。 dbcp 是 ...
与其他容器相比,Spring 的一大特点是其Bean可以是普通的Plain Old Java Objects(POJOs),不需要实现特定接口或继承特定基类,这意味着Spring管理的对象在容器外部也可以正常使用,增强了代码的可复用性和灵活性。...
Spring Boot 是一个基于 Spring 框架的高度集成了简化开发的工具,它旨在简化创建产品级的 Spring 应用程序。MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。当我们将 Spring Boot 与 ...
本教程将深入探讨如何在基于Spring Cloud的微服务架构中集成Flowable工作流引擎,提升系统的流程管理能力。 首先,Spring Cloud是构建分布式系统的一系列工具集,包括服务发现、配置管理、熔断机制等,它为微服务...
应用程序上下文层次结构允许子上下文从父上下文中继承属性,增强了配置管理的灵活性。 总之,Spring Cloud 是构建云原生应用的强大工具,它提供了丰富的功能,如配置管理、服务发现、断路器、路由等,帮助开发者...
17.Spring Cloud中Feign的继承特性 18.Spring Cloud中Feign配置详解 19.Spring Cloud中的API网关服务Zuul 20.Spring Cloud Zuul中路由配置细节 21.Spring Cloud Zuul中异常处理细节 22.分布式配置中心Spring ...
- 通过继承`spring-boot-starter-parent`父项目,可以获得统一的版本管理和依赖管理。 - 导入`spring-boot-dependencies`作为依赖管理,简化项目构建配置。 7. **Spring Boot运行方式** - 打包成JAR/WAR运行,可...
如果不想继承 Starter 父 POM,可以使用以下方式来使用 Spring Boot: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-web ``` 自定义层配置 Spring Boot Maven Plugin 提供...
我们可以通过继承`JpaRepository`或`CrudRepository`来创建自定义的Repository,无需编写任何DAO层的代码。例如,假设我们有一个`User`实体,我们可以定义一个`UserRepository`: ```java public interface ...
**描述解析:** 描述提到“maven构建的spring继承CXF的简单示例”,这告诉我们这个项目是用Maven来管理依赖,使用Spring框架,并且集成了CXF服务框架。对于新手来说,这是一个很好的起点,因为它覆盖了三个关键的...
在本文中,我们将深入探讨如何在SpringBoot项目中集成Spring Security来实现角色继承,并提供一个完整的源码示例。这将特别适用于初学者和开发者,帮助他们更好地理解Spring Security的安全特性。 让我们理解Spring...
Spring Security 角色继承分析 Spring Security 角色继承分析是 Spring Security 框架中的一项重要功能,它允许开发者定义角色之间的继承关系,从而实现权限的继承和复用。今天,我们将深入探讨 Spring Security ...
setter 注入的优点包括通过 setter 方法设定依赖关系更加直观自然、当依赖关系(或继承关系)较复杂时,构造注入方式的构造函数相当庞大,此时若使用设值注入方式则简单快捷。构造方法注入的优点包括把创建完整、...
当你在项目中尝试继承`SpringBeanAutowiringSupport` 时遇到编译错误,这通常意味着你的构建路径中没有包含Spring的核心库。Spring框架是基于多个jar包的,包括但不限于`spring-context.jar`,这个jar包包含了`...