Spring根据类型自动装配

本文介绍Spring框架中的自动装配机制,特别是default-autowire属性的作用,展示如何通过该属性实现类之间的自动绑定,无需显式配置依赖关系。

Bean1.java

package com.cos.bean110321;
public class Bean1 {
    String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

 

Bean2.java

package com.cos.bean110321;
public class Bean2 {
    int age;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

 

applicationContext_7.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd" default-autowire="byType">

    <bean name="test" class="com.cos.bean110321.Test"/>
    <bean class="com.cos.bean110321.Bean1"/>
    <bean name="asdf" class="com.cos.bean110321.Bean2"/>
</beans>

 

Test.java

package com.cos.bean110321;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
    private Bean1 bean1;
    private Bean2 bean2;
    public Bean1 getBean1() {
        return bean1;
    }
    public void setBean1(Bean1 bean1) {
        this.bean1 = bean1;
    }
    public Bean2 getBean2() {
        return bean2;
    }
    public void setBean2(Bean2 bean2) {
        this.bean2 = bean2;
    }
    public static void main(String[] args) {
        //根据配置文件获得bean工厂
        BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext_7.xml");
        //取得test这个bean,转化成Test对象
        Test test = (Test) factory.getBean("test");
        //给Bean1的name设置值:good
        test.getBean1().setName("good");
        //取得Bean1的name属性的值,结果输出:good
        System.out.println(""+test.getBean1().getName());

        //给Bean2的age设置值:20
        test.getBean2().setAge(20);
        //取得Bean2的age属性的值,结果输出:20
        System.out.println(""+test.getBean2().getAge());
    }
}

    

从输出中可以看到,在Test.java中正确的给Bean1和Bean2设置了name和age值。

但是在spring配置文件中,既没有指定注入关系,也没有指定按名称自动装配。

但是在配置文件中可以看到标签<beans>的一个属性:default-autowire="byType"

这就是按类型自动匹配,此时只要Test.java中的属性的名字在配置文件中有完成的路径(class选项)即可,不需要在配置文件中配置注入关系,也不需要指定被注入类的id、name,也可以把id、name都去掉,只留一个class属性。

spring就会自动根据类型匹配到。

 

spring的<bean>标签里的id和name的区别:

1、id是唯一标识,并且需遵循XML的命名规范。name可以有重复,并且不需要遵循

2、name值可以有多个,这样以","分隔:name="name1,name2"

     此时通过getBean("name1")和getBean("name2");返回相同的实例(Singleton的时候)

 

 

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值