- 浏览: 188333 次
- 性别:
- 来自: 上海
文章分类
最新评论
bean的定义中可能会包含大量的配置信息,包括容器相关的信息,构造函数参数,属性等;如果两个bean之间的配置信息大同小异,可采用bean继承来减少重复配置的工作,子bean定义可以从父bean定义继承部分配置,它可以添加部分配置,或者覆盖一些配置,其实这是一种模板形式。
父bean通常不需要实例化,仅仅作为子bean定义的模板使用,ApplicationContext默认预初始化所有的singleton行为的bean,为了阻止父bean被预初始化,可使用abstract属性设置父bean为抽象bean,容器会忽略所有抽象bean的定义,预初始化时不初始化抽象bean。
子bean定义可以从父bean继承实现类,构造器参数,属性值,注意,这里bean是抽象的,但是bean的实现类并不是抽象的
Spring 中bean的继承和Java中的继承截然不同,前者是实例与实例之间的参数的延续,后者是一般到特殊的细化,前者是对象和对象之间的关系,后者是类和类之间的关系。
a.Spring中的子bean和父bean可以是不同的类型,但是Java中的继承,子类是一种特殊的父类;
b.Spring中的bean的继承是实例之间的关系,主要表现在参数的延续,而Java中的继承是类与类之间的关系,主要体现在方法和属性的延续。
c.Spring中子bean不可以作为父bean使用,不具备多态性,Java中的子类实例完全可以当作父类实例使用。
spring 中定义parent 的情况:
baseDao 配置为基bean 注入数据源。 其他Dao 可以指定该基bean 为parent ,减少重复配置 继承的是实例的参数,如果不设置基bean,则每个dao都要自行注入数据源,重复配置很多。
同时基于java类的继承,则同样可以使用基类中的函数、方法等。
如果dao继承了父类,但是spring bean配置中没有指定其为parent,则不能继承父类中注入的参数。
父bean通常不需要实例化,仅仅作为子bean定义的模板使用,ApplicationContext默认预初始化所有的singleton行为的bean,为了阻止父bean被预初始化,可使用abstract属性设置父bean为抽象bean,容器会忽略所有抽象bean的定义,预初始化时不初始化抽象bean。
子bean定义可以从父bean继承实现类,构造器参数,属性值,注意,这里bean是抽象的,但是bean的实现类并不是抽象的
Spring 中bean的继承和Java中的继承截然不同,前者是实例与实例之间的参数的延续,后者是一般到特殊的细化,前者是对象和对象之间的关系,后者是类和类之间的关系。
a.Spring中的子bean和父bean可以是不同的类型,但是Java中的继承,子类是一种特殊的父类;
b.Spring中的bean的继承是实例之间的关系,主要表现在参数的延续,而Java中的继承是类与类之间的关系,主要体现在方法和属性的延续。
c.Spring中子bean不可以作为父bean使用,不具备多态性,Java中的子类实例完全可以当作父类实例使用。
spring 中定义parent 的情况:
baseDao 配置为基bean 注入数据源。 其他Dao 可以指定该基bean 为parent ,减少重复配置 继承的是实例的参数,如果不设置基bean,则每个dao都要自行注入数据源,重复配置很多。
同时基于java类的继承,则同样可以使用基类中的函数、方法等。
如果dao继承了父类,但是spring bean配置中没有指定其为parent,则不能继承父类中注入的参数。
发表评论
文章已被作者锁定,不允许评论。
-
spring boot
2017-11-22 14:12 0spring boot service mesh spring ... -
spring 线程池
2016-07-10 10:26 511一、初始化 1,直接调用 [java] view plai ... -
Reactor、Disruptor
2016-04-27 12:55 1074Reactor 主要用于帮助开发者创建基于JVM的异步应用程序 ... -
mybatis 帮助文档
2016-04-22 11:01 494http://www.mybatis.org/mybatis- ... -
spring mybatis
2016-03-25 15:43 539org.mybatis.spring.SqlSessionTe ... -
mybatis深入
2016-03-21 13:59 482-------Mybatis数据源与连 ... -
关于 mybatis 传参
2016-03-18 10:46 550基本数据类型:包含int,String,Date等。基本数据类 ... -
spring 加载配置文件 xml 和properties
2016-03-17 17:12 2933Spring配置文件是集成了Spring框架的项目的核心,引擎 ... -
spring 事务 提交
2016-03-07 15:16 780如果你不启用事务,默认是自动提交的,不需要设置autoComm ... -
mybatis 、jdbc 、 spring事务模板
2016-03-04 16:22 850mybatis深入: http://b ... -
mybatis 转义字符
2015-11-28 16:23 20521、在xml的sql语句中,不能直接用大于号、小于号要用转义字 ... -
mybatis jdbc 字段映射类型
2015-09-29 14:38 2107mybatis常用jdbcType数据类型 MyBati ... -
org.springframework.jdbc.support.lob.DefaultLobHandler
2015-06-04 10:51 604http://www.ibm.com/developerwor ... -
spring 延迟加载与 init-method,afterPropertiesSet和BeanPostProcessor
2015-01-06 10:44 2578ApplicationContext实现的默认行为就是在启动时 ... -
Spring MethodInterceptor
2015-01-05 18:23 794我们知道在Spring中一共提供了四种Advice用来支持对方 ... -
Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean
2015-01-05 18:10 817一般我们可以使用ProxyBeanFactory,并配置pro ... -
Spring aop 原理及各种应用场景
2015-01-05 17:16 8160AOP是Aspect Oriented Programing的 ... -
ibatis逻辑分页与物理分页
2014-12-31 14:26 581一 直以来ibatis的分页都是通过滚动ResultSet实现 ... -
iBATIS mybatis 配置 说明
2014-12-30 17:27 1448SqlMapClientFactoryBean的主要的几个属性 ... -
mysql 中mybatis 传参与返回参数
2014-12-26 11:11 2018传入参数必须与配置文件中标明的参数一致 如 <selec ...
相关推荐
205、EJB与JAVA BEAN的区别? 51 206、EJB的基本架构 51 207、MVC的各个部分都有那些技术来实现?如何实现? 52 208、J2EE是什么? 52 209、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,...
- Message-driven Beans:用于处理消息,常与JMS(Java Message Service)配合,处理异步通信。 - Entity Beans:表示数据库中的持久化实体,有Container-managed Persistence(容器管理的持久性)和Bean-managed ...
2. 类与对象:掌握类的定义、对象创建、封装、继承和多态的概念。 3. 构造器:理解构造器的作用,何时使用默认构造器和自定义构造器。 4. 静态与非静态:区分静态成员和非静态成员的使用场景。 5. 内存管理:了解堆...
2. HashMap与HashTable:对比两者的异同,掌握HashMap的底层实现。 3. Map接口:理解键值对存储,了解ConcurrentHashMap和WeakHashMap的特性。 4. 集合操作:熟练使用add、remove、contains、clear等方法,以及集合...
- **Spring**:理解IoC和AOP的概念,掌握Spring Bean的生命周期。 - **MyBatis**:了解MyBatis的映射文件配置,SQL动态执行等。 以上只是部分内容概述,具体面试可能会涉及到更深入的问题,例如对算法的理解、...
- **接口与抽象类**:比较它们的异同,如方法的默认修饰符、继承限制等。 - **线程状态**:了解就绪、运行、等待、睡眠、I/O阻塞和同步阻塞等状态。 准备这些知识点不仅需要理论理解,还需要实践经验的支持。在...
spring和Hibernate继承后,定义事务管理特性的时候查询为什么要定义为read-only? 答:因为添加、删除和更新都涉及到了数据库的修改,而查询并未涉及到数据库修改,所以只需要定义只读,这样可以提高效率,进行更加...
答案:Spring是一个全面的Java企业级应用开发框架,提供依赖注入、面向切面编程、事务管理等功能。其核心模块包括:Core Container(包含Bean Factory和ApplicationContext)、Data Access/Integration(支持JDBC、...
54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到...
54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到...
2. **Struts与WebWork**:了解Struts 1.0的工作原理及其与WebWork框架的异同。 3. **Spring/IOC**:掌握Spring框架的核心理念——Inversion of Control(控制反转),以及POJO(Plain Old Java Object)的概念。 4...
- **HashMap与HashTable**:比较它们的异同,理解线程安全与非线程安全的概念。 - **Set接口**:掌握HashSet、TreeSet的特点,了解其内部实现原理。 3. **多线程**: - **线程的创建**:使用Thread类或Runnable...
54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到...
- 抽象类与接口:比较抽象类和接口的异同,了解它们在设计中的作用。 - 封装:学习如何使用getter和setter方法保护类的内部状态。 3. **集合框架** - List、Set、Queue接口:掌握ArrayList、LinkedList、HashSet...
54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 38 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 40 56、子线程循环10次,接着主线程循环100,接着又回到...
54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到...