spring 自动装配 default-autowire="byName/byType"
一、spring 自动装配 default-autowire="byName"
byName,按变量名称,与id名称一样,若不一样,就报错。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire="byName">
<bean id="bean1" class="com.zd.bean.Bean1" >
<!-- 配了default-autowire="byName" ,可以注释
<property name="bean2">
<ref bean="bean2" />
</property>
<property name="bean3" ref="bean3" />
<property name="bean4">
<bean class="com.zd.bean.Bean4">
<property name="age" value="16" />
</bean>
</property>
-->
</bean>
二、spring 自动装配 default-autowire="byType"
byType,按类型自动装配,若变量与id不匹配,也没关系
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire="byName">
<bean id="bean1" class="com.zd.bean.Bean1" >
<!-- 配了default-autowire="byType" ,可以注释
<property name="bean2">
<ref bean="bean2" />
</property>
<property name="bean3" ref="bean3" />
<property name="bean4">
<bean class="com.zd.bean.Bean4">
<property name="age" value="16" />
</bean>
</property>
-->
</bean>
三、默认配置是no,推荐用这种,因以上自动装配,对维护不是太好。
分享到:
相关推荐
本示例"spring-autowire-demo.zip"是基于Spring 5.3.6版本,通过多个示例展示了自动装配的不同方式:default、byName、byType和constructor,帮助我们更深入理解这个功能。 首先,让我们了解什么是自动装配。自动...
byName 自动装配是指通过设置 property 标签的 autowire 属性为 byName,Spring 将自动寻找一个与该属性名称相同或 id 相同的 Bean,注入进来。例如: ```xml <bean id="dataSource" class=...
Spring自动装配提供了几种模式来处理这些依赖,如`byName`、`byType`、`constructor`、`autodetect`和`default`。这些模式帮助Spring容器识别并注入合适的依赖。 - `byName`模式:根据属性名寻找匹配的Bean名称进行...
本文将深入探讨Spring中的六种自动装配方式:byType、byName、no、constructor、autodetect和default。 1. byType(按类型装配) 当Spring容器在配置文件中找不到明确的通过`ref`属性指定的依赖时,会尝试通过类型...
在上面的示例中,我们使用`default-autowire`属性来设置全局自动装配的方式为`byName`。在这种情况下,如果我们没有为特定的Bean组件指定自动装配的方式,那么Spring框架将使用`byName`方式来自动装配依赖关系。 四...
- Spring中有两种主要的装配模式:按类型装配(byType)和按名称装配(byName)。 - 默认情况下,Spring并不会自动装配bean,需要在配置中明确指定,例如`default-autowire="byType"`。 - `default-autowire`属性...
<beans default-autowire="byName" default-lazy-init="false" default-dependency-check="none"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name=...
使用`default-autowire="byName"`和`default-lazy-init="true"`可以让Spring自动装配Bean,并延迟初始化。 3. **Controller层设计**: - **Struts 2的使用**:在编写Controller层时,应遵循Struts 2的最佳实践,...
- `byName`:Spring会尝试查找与Bean属性名称相匹配的Bean进行注入。 - `byType`:根据Bean的类型,Spring会寻找相同类型的Bean进行注入。 - `constructor`:基于构造函数参数的类型进行自动装配。 - `auto...
4. **Spring装配策略default-autowire="byName"`: 这个策略指示Spring自动根据bean的属性名称查找相同名称的bean来注入。如果在不同的配置文件中设置,会影响Spring容器如何解析和注入bean。例如,如果在所有配置...
- **ByName:** 根据名称自动装配。 - **ByType:** 根据类型自动装配。 - **Default-Autowire:** 所有Bean采用相同的装配策略。 **生命周期管理:** - 支持Bean的初始化和销毁方法的定义。 **Annotation支持:** - ...
<bean default-autowire="byName"> <!-- 配置 ArticleDaoImpl --> <bean id="articleDao" class="demo.dao.ArticleDaoImpl"> <!-- 设置SessionFactory --> <property name="sessionFactory" ref=...
可以在一个应用上下文中定义多个配置文件,每个配置文件设置自己的默认自动装配策略(default-autowire) 如果使用constructor自动装配策略,就不能混合使用constructor-arg 注解方式可以实现更细粒度的自动装配,...
`default-autowire="byName"`表示Spring会根据Bean的属性名自动查找和注入相应的Bean,简化了配置工作。 6. **环境准备**:在实际开发中,需要安装JDK和Web服务器(如Tomcat),并确保所有必要的库(如Spring、...
<beans default-autowire="byName"> <bean id="a" class="testspring.A" init-method="init"> <bean id="b" class="testspring.B"> ``` 测试代码: ```java public static void main(String[] args) { ...
- **`byName`**: 根据属性名自动匹配对应的Bean。 - **`byType`**: 根据属性类型自动匹配对应的Bean。 - **`constructor`**: 通过构造函数进行自动装配。 - **`autodetect`**: 如果存在一个无参构造函数,则使用`...