自动装配有三种方式(实际开发中很少使用),使用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框架中,Bean是核心概念之一,它们代表了应用程序中的对象,负责执行特定的功能。...在实际开发中,根据需求选择合适的作用域、自动装配策略以及利用Bean继承,可以使应用程序更具灵活性和可维护性。
单例Bean可以依赖原型作用域的Bean,每次获取单例Bean时,都会返回一个新的原型Bean实例。 1.5.4 Web作用域 Spring为Web应用定义了request、session、application和WebSocket作用域。 1.5.5 自定义作用域 Spring...
总的来说,Spring框架通过其强大的依赖注入机制、灵活的对象作用域和自定义属性编辑器等功能,极大地简化了Java应用程序的开发和维护,使得开发者可以专注于业务逻辑,而非底层的基础设施。理解和掌握这些核心概念...
以上是对Spring Core官方文档的部分内容进行的详细总结,涵盖了Spring框架中IoC容器的基础概念、Bean的配置和管理、依赖注入、Bean的作用域以及Bean定义的定制等内容。这些知识点对于理解和使用Spring框架至关重要。
- **@Scope**:定义Bean的作用域,如单例(singleton)、原型(prototype)等。 - **@PostConstruct** 和 **@PreDestroy**:标记初始化和销毁方法,Spring会在Bean创建后和销毁前调用这些方法。 在`spring_autozp_...
- 不能自动装配基本类型和String类型的依赖项。 25、什么是基于注解的容器配置。 基于注解的容器配置是指使用Java注解来配置Spring IoC容器,而不是使用XML文件。这种方式使得配置更加简洁,并且易于维护。 26、...
自动装配是一种简化依赖注入的方式,但需要注意其局限性和潜在问题。 - **1.4.6 方法注入** - **查找方法注入**:用于动态设置Bean的状态。 - **任意方法替换**:可以替换Bean的方法实现,提供更灵活的定制能力...
代码及ppt涵盖 Spring4.0 的所有核心内容:在 Eclipse 中安装 SpringIDE 插件、IOC & DI、在 Spring 中配置 Bean、自动装配、Bean 之间的关系(依赖、继承)、Bean 的作用域、使用外部属性文件、SpEL、管理 Bean 的...
- 开发者可以根据需要定义自己的作用域。 - **3.6 Customizing the nature of a bean** - **3.6.1 生命周期回调函数** - 定义bean的初始化和销毁方法。 - **3.6.2 ApplicationContextAware and BeanNameAware*...
2. **`@Autowired`注入**:当Bean被自动扫描后,Spring可以使用`@Autowired`注解自动装配依赖。这个注解告诉Spring,应该找到类型匹配的Bean来注入当前Bean的属性、构造器参数或方法。 3. **`@Configuration`与`@...
总结,Spring环境的搭建涉及到库的配置、配置文件的编写、bean的定义与依赖注入、属性编辑器的定制以及bean的作用域和自动装配等多方面的知识。理解并熟练掌握这些概念,将有助于你有效地使用Spring框架进行应用程序...
3. **自动装配**:自动装配是Spring的一种特性,它可以在不指定任何依赖的情况下自动将Bean的实例注入到其他Bean中。 七、自定义Bean行为 1. **生命周期接口**:Spring提供了多个生命周期接口,如InitializingBean...
在Spring框架中,BeanDefinition是核心组件之一,它定义了bean的基本信息和元数据,包括bean的类、作用域、依赖关系、初始化方法等。在Spring容器启动时,配置文件或注解中的bean定义会被解析成BeanDefinition对象,...
7. **自动扫描与装配**:Spring可以自动发现和装配Bean。我们可以实现一个类扫描器,扫描指定包下的类,并根据注解(自定义或类似`@Component`)来注册Bean。 8. **事件处理**:Spring有事件发布和监听机制。我们...
- **作用域**:Bean可以有多种作用域,如单例、原型、请求、会话等。 - **事件传播**:Spring容器可以广播事件,使得bean之间可以进行通信。 - **AOP代理**:Spring提供两种类型的代理,即JDK动态代理和CGLIB代理,...
- **BeanDefinition**:BeanDefinition用于描述Bean的配置元数据,如类名、作用域等。 - **BeanClass**:BeanClass是指Bean对应的Java类。 - **Bean标识符**:Bean的id和name是唯一标识Bean的方式。 - **单例与...
此外,Spring还提供了复杂的装配方式,如构造函数装配、Bean的作用域管理、方法注入等。 通过以上概述,我们了解了Spring框架的基本概念及其为何能成为Java EE领域最受欢迎的框架之一。希望这些内容能够帮助读者更...
- **自动装配**:Spring可以根据一定的规则自动匹配bean之间的依赖关系。 - 自动装配模式:`no`、`byName`、`byType`、`constructor`。 - `no`:关闭自动装配。 - `byName`:根据bean的名称自动装配。 - `byType...
5. `scope`: 定义Bean的作用域。常见的有: - `singleton`: 默认值,表示只有一个共享实例。 - `prototype`: 表示每次请求都会创建新的实例。 - `request`: 在一次HTTP请求内,每个Bean只有一个实例。 - `...