`

自动装配,继承和依赖,作用域

 
阅读更多

自动装配有三种方式(实际开发中很少使用),使用autowire装配

1.byType根据类型自动装配,如果IoC容器中有多个相同类型的bean无法具体判断

 

2.byName根据名称自动装配

 

3.constructor不推荐

<!-- 通过构造器方式配置bean -->
	<bean id="car" class="com.hous.spring.Car">
		<constructor-arg value="pasate" index="0"></constructor-arg>
		<constructor-arg value="shanghai" index="1"></constructor-arg>
		<constructor-arg value="300000" type="double"></constructor-arg>
	</bean>
	
	<bean id="address" class="com.hous.spring.Address"
		p:city="suqian" p:street="shuanghe"/>
	
	<!-- 会根据名称自动装配car和address -->
	<bean id="person" class="com.hous.spring.Person" 
		p:name="box"  p:age="28" autowire="byName" />

 

 Bean的继承和依赖

spring允许继承父bean的配置,子bean可以覆盖父bean继承过来的属性,若只想把父bean做为模板,可以设置bean的abstract属性为true,若忽略父bean的class属性,则abstract属性必须为true

 

	<bean id="address" 
		p:city="suqian" p:street="shuanghe" abstract="true"/>
	
	<bean id="address2" class="com.hous.spring.Address"
		p:city="nanjing" parent="address"/>

 

 spring允许使用depends-on属性设置bean的前置依赖bean,如果有多个依赖可以使用逗号或者空格分开

 

	<bean id="address" class="com.hous.spring.Address"
		p:city="suqian" p:street="shuanghe"/>
	
	<bean id="person" class="com.hous.spring.Person"
		p:age="20" p:name="hous" depends-on="address"/>

 

bean的作用域singleton和prototype(request和session使用较少)

可以使用scope设置作用域

	<!-- 
		singleton:默认值,在容器初始化的时候创建,在整个bean的生命周期中只创建一次bean,单例的
		prototype:容器初始化的时候并不创建bean的实例,每次请求的时候创建bean的实例并返回
	 -->
	<bean id="person" class="com.hous.spring.Person"
		p:age="20" p:name="hous" scope="prototype"/>

 

分享到:
评论

相关推荐

    spring个人笔记,很好的哦

    总的来说,Spring框架通过其强大的依赖注入机制、灵活的对象作用域和自定义属性编辑器等功能,极大地简化了Java应用程序的开发和维护,使得开发者可以专注于业务逻辑,而非底层的基础设施。理解和掌握这些核心概念...

    spring自动扫描和管理Bean的示例

    - **@Scope**:定义Bean的作用域,如单例(singleton)、原型(prototype)等。 - **@PostConstruct** 和 **@PreDestroy**:标记初始化和销毁方法,Spring会在Bean创建后和销毁前调用这些方法。 在`spring_autozp_...

    尚硅谷佟刚Spring4代码及PPT.rar

    代码及ppt涵盖 Spring4.0 的所有核心内容:在 Eclipse 中安装 SpringIDE 插件、IOC & DI、在 Spring 中配置 Bean、自动装配、Bean 之间的关系(依赖、继承)、Bean 的作用域、使用外部属性文件、SpEL、管理 Bean 的...

    Spring学习笔记(9)----让Spring自动扫描和管理Bean

    2. **`@Autowired`注入**:当Bean被自动扫描后,Spring可以使用`@Autowired`注解自动装配依赖。这个注解告诉Spring,应该找到类型匹配的Bean来注入当前Bean的属性、构造器参数或方法。 3. **`@Configuration`与`@...

    Spring源码学习二:BeanDefinition解析1

    在Spring框架中,BeanDefinition是核心组件之一,它定义了bean的基本信息和元数据,包括bean的类、作用域、依赖关系、初始化方法等。在Spring容器启动时,配置文件或注解中的bean定义会被解析成BeanDefinition对象,...

    手写简单的Spring框架

    7. **自动扫描与装配**:Spring可以自动发现和装配Bean。我们可以实现一个类扫描器,扫描指定包下的类,并根据注解(自定义或类似`@Component`)来注册Bean。 8. **事件处理**:Spring有事件发布和监听机制。我们...

    Spring 5.1.x(重) (1).docx|Spring 5.1.x(重) (1).docx

    - **作用域**:Bean可以有多种作用域,如单例、原型、请求、会话等。 - **事件传播**:Spring容器可以广播事件,使得bean之间可以进行通信。 - **AOP代理**:Spring提供两种类型的代理,即JDK动态代理和CGLIB代理,...

    Spring考试.doc

    - Spring的IoC容器不仅负责Bean的实例化,还管理Bean的生命周期,包括初始化、销毁方法的调用、作用域(如单例、原型)管理等。 - Spring还提供了AOP(面向切面编程)支持,允许开发者定义横切关注点,如日志、...

    SpringBoot之Bean的使用及处理

    3. **Bean的作用域**:Bean有多种作用域,包括Singleton(单例)、Prototype(原型)、Request、Session、GlobalSession等。Singleton是最常见的一种,每个容器只有一个实例;Prototype则每次请求都会创建新的实例。...

    Spring笔记

    同时,Spring还支持单例和原型两种作用域,以及工厂方法、构造器注入等多种创建对象的方式。 5. **继承配置**: Spring的XML配置文件可以进行继承,使得配置更加模块化和复用。子配置文件可以继承父配置文件,并在...

    ssm框架源码分析之.docx

    作用域(Scope)spring 支持单例(singleton)、原型(prototype)等多种作用域,控制对象的生命周期。默认为单例。5.spring ioc 工厂体系结构5.1.DefaultListableBeanFactory作为基础的 Bean 工厂,负责实例化、...

    BeanDefinition基础信息讲解

    在Spring框架中,BeanDefinition的作用域是指Bean的生命周期,可以是单例(singleton)或原型(prototype)。单例表示Bean只会被实例化一次,而原型表示Bean每次都会被实例化。 ### BeanDefinition的继承 Bean...

    spring基础教程 spring基础教程

    Bean可以通过 Singleton、Prototype、Request、Session 等不同作用域进行管理。 三、依赖注入(Dependency Injection, DI) 依赖注入是Spring的核心特性之一,它允许开发者在不使用硬编码的情况下,将依赖关系从...

    java软件工程师面试基本题.doc

    `@RequestMapping` 处理HTTP请求,`@ResponseBody` 将方法返回值直接写入HTTP响应体,`@RequestParam` 用于绑定请求参数,`@ModelAttribute` 用于模型绑定,`@Scope` 设置bean的作用域,`@CookieValue` 和 `@...

    java面试题精华汇总

    - 静态与非静态变量:理解它们的作用域和生命周期。 - 变量的作用域:知道局部变量、成员变量、类变量和final变量的使用规则。 3. **运算符与流程控制** - 运算符:掌握算术、比较、逻辑、位运算符的用法。 - ...

    java软件工程师面试基本题_共5页.docx

    - `@Scope`:指定bean的作用域,如singleton(单例)和prototype(原型)。 - `@CookieValue`:用于读取Cookie值。 - `@SessionAttributes`:用于在Session中存储属性。 5. **Cookie与Session的区别**:Cookie...

    spring mvc+ibatis+spring注解

    `@Scope`定义bean的作用域,如单例(singleton)或多例(prototype)。`@Configuration`和`@Bean`注解组合使用可以替代XML配置,创建和配置bean。 **集成使用** Spring MVC、iBatis 和 Spring 注解的集成通常包括...

    java面试题,葵花宝典

    - **JSP生命周期**:理解page、request、session和application四个作用域。 - **Servlet**:学习Servlet的生命周期,以及Servlet与JSP之间的关系。 3. **Hibernate**: - **ORM概念**:理解Object-Relational ...

    spring.doc

    Scope单例多例作用域拓展: 16 3.4.1 singleton(默认值) 16 3.4.2 prototype 17 3.4.3 Request 17 3.4.4 Session 18 3.4.5 Global session 18 3.4.6 指定Bean的初始化方法和销毁方法 18 Bean的初始化和销毁拓展: 18...

    Spring中文帮助文档

    为自动检测的组件提供一个作用域 3.12.6. 用注解提供限定符元数据 3.13. 注册一个LoadTimeWeaver 4. 资源 4.1. 简介 4.2. Resource接口 4.3. 内置 Resource 实现 4.3.1. UrlResource 4.3.2. ClassPath...

Global site tag (gtag.js) - Google Analytics