`

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

 
阅读更多

自动装配有三种方式(实际开发中很少使用),使用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 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(面向切面编程)支持,允许开发者定义横切关注点,如日志、...

    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...

    Spring API

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

    spring学习小结

    - 单例(Singleton):默认作用域,每个容器只有一个实例。 - 原型(Prototype):每次请求都会创建一个新的bean实例。 - 会话(Session):在Web应用中,每个HTTP会话都有一个bean实例。 - 请求(Request):在...

Global site tag (gtag.js) - Google Analytics