`
zhukang0725
  • 浏览: 15900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Spring中Bean的5种自动装载模式

阅读更多
在Spring中,有五种autowire模式:byName,byType,constructor,autodetect,no;
下面分别对其进行介绍
1 byName:这个很简单,直接按照名字进行查找

package com.jnotnull;

public class HelloWorld {
public String message = null;

        public void init(){
               this.message = "HelloWorld";
        }

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byName">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>

2 byType:按照类型进行查找,如果没有找到匹配的,则什么也没有改变,同时可以通过设置dependency-check="objects"属性来在没有匹配到的情况下抛出这种错误。

package com.jnotnull;

public class HelloWorld {
public String message = null;

        public void init(){
               this.message = "HelloWorld";
        }

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="byType">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>


3 constructor:直接根据构造函数进行匹配

package com.jnotnull;

public class HelloWorld {
public String message = null;

        public void init(){
               this.message = "HelloWorld";
        }

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="constrator">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>

4 autodetect:先按constructor匹配,再按byType匹配

package com.jnotnull;

public class HelloWorld {
public String message = null;

        public void init(){
               this.message = "HelloWorld";
        }

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="autodetect">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>


5 no:不用任何模式进行匹配,这个也是默认的匹配模式

package com.jnotnull;

public class HelloWorld {
public String message = null;

        public void init(){
               this.message = "HelloWorld";
        }

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" autowire="no">
<property name ="message">
<value>HelloWorld</value>
</property>
<bean>
</beans>

通过上面的介绍,你是不是发现很简单。
分享到:
评论

相关推荐

    spring IOC反射装载bean

    在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...

    关于spring boot中几种注入方法的一些个人看法

    在启动 Spring IoC 时,容器自动装载了一个 AutowiredAnnotationBeanPostProcessor 后置处理器,当容器扫描到 @Autowired、@Resource 或 @Inject 时,就会在 IoC 容器自动查找需要的 bean,并装配给该对象的属性。...

    详解Java的Spring框架下bean的自动装载方式

    Spring提供了几种自动装配模式,帮助开发者更加灵活地处理Bean的实例化和连接。本文将详细介绍其中的两种模式:byName和byType。 1. byName模式: 在byName模式下,Spring容器会根据Bean的属性名尝试寻找匹配的Bean...

    Spring源码学习五:BeanDefinition装载1

    在本篇文章中,我们将深入探讨 Spring 的源码,了解如何装载 BeanDefinition,并解析其实现细节。 BeanDefinition 的装载 在前一篇文章中,我们已经了解了 BeanDefinition 的概念和 importance。现在,我们将深入...

    spring 重新动态加载数据库或xml中的bean,可以不用重启tomcat

    spring 重新动态加载数据库或xml中的bean,可以不用重启tomcat

    Spring源码学习四:BeanDefinition装载前奏曲1

    在深入Spring源码的学习过程中,我们主要关注BeanDefinition的装载过程。BeanDefinition是Spring框架的核心概念,它包含了关于Bean的所有元数据,如类名、属性、依赖关系等。在Spring初始化时,会读取XML配置文件,...

    Spring —Mybaits 自动生成dao、bean、map框架使用说明

    1.lib必须按照项目中的classpath中的顺序 不然 系统找不到类 2.框架能够自动生成类和dao层 3.框架集成了Spring 能够自动将bean、dao、service装载到SPring容器中,供调用

    浅谈spring容器中bean的初始化

    5. **Bean的生命周期管理**:Spring提供了预初始化、初始化、后初始化等一系列回调接口(如`InitializingBean`和自定义的初始化方法),使得开发者可以在Bean的生命周期中插入自定义逻辑。 总的来说,Spring容器对...

    Spring全家桶知识笔记.pdf

    AutowireCapableBeanFactory接口定义了自动装配的机制,通过一定的规则将容器中的bean进行自动装配。SingletonBeanRegistry接口提供了运行期间注册单例bean的能力,这意味着bean实例被缓存,后续请求可以直接从缓存...

    Spring中文帮助文档

    11.1.1. 选择一种工作模式 11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 ...

    Spring Bean装载方式代码实例解析

    在Spring框架中,Bean的装载方式是至关重要的,因为它决定了对象如何被创建、初始化以及其依赖如何被注入。本文将详细解析Spring Bean的两种主要装载方式:基于XML的设值注入和构造注入。 首先,设值注入是通过...

    spring 4.1 jar包

    5. **Spring Context** (spring-context-4.1.6.RELEASE.jar): 上下文模块是Spring的中枢,它扩展了bean工厂,提供了国际化、事件传播、AOP(面向切面编程)支持,以及集成其他Spring模块的能力。 6. **Spring Web ...

    Spring API

    11.1.1. 选择一种工作模式 11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 ...

    spring笔试题28题选择+2简答

    - **自动装载**: Spring可以根据依赖关系自动匹配并注入相应的Bean。 **知识点2:构造方法注入的特点** - **优点**: 可以确保依赖关系的完整性,特别适用于不可变对象或者必需的依赖关系。 - **缺点**: 当依赖关系...

    Spring3.x权威开发指南

    Autowiring是一种自动装配Bean依赖的方式,Spring支持多种autowiring策略,如byName、byType等。 **2.4 基于注解(Annotation)方式配置DI容器** 注解配置是Spring 3.0中引入的一个新特性,它允许开发者使用注解...

    spring 自动装配和aop的使用

    4. **修改对象作用域**:默认情况下,Spring中的bean是单例的,可以通过`@Scope("prototype")`注解将bean设置为多例。 5. **值类型注入**:使用`@Value`注解注入基本类型的值,可以是字段注入或setter方法注入。 6...

    Spring教材

    自动组件扫描功能允许Spring容器在类路径下查找标记了特定注解的类,自动注册为bean,进一步减少了手动配置的工作量。 2. 面向切面编程(Aspect-Oriented Programming, AOP) AOP是Spring用于实现横切关注点(如...

    spring学习手册

    - **自动装配**:Spring框架如何自动为Bean寻找合适的依赖。 - **Bean之间的关系**:Bean如何通过继承和依赖关系相互关联。 - **Bean的作用域**:介绍了singleton、prototype等作用域类型。 - **使用外部属性文件**...

    Java面试 spring知识点 线程池 面试题

    Spring AOP原理涉及到代理模式,Spring提供了两种类型的AOP代理:JDK动态代理和CGLIB代理。前者适用于实现了接口的类,后者则用于未实现接口的类。面试者需要理解这两种代理的工作机制,并能根据场景选择合适的代理...

Global site tag (gtag.js) - Google Analytics