博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 通过xml获得容器的三种方法比较
阅读量:6274 次
发布时间:2019-06-22

本文共 2491 字,大约阅读时间需要 8 分钟。

applicationContext.xml

复制代码

Studnet.java

package test2;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Component(value = "student1")public class Student1 {    @Value("lisi")    private String name ;    @Value("123")    private int age;    public String getName() {        return name;    }    @Override    public String toString() {        return "Student{" +                "name='" + name + '\'' +                ", age=" + age +                '}';    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}复制代码

run_test

package test2;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.support.BeanDefinitionReader;import org.springframework.beans.factory.support.BeanDefinitionRegistry;import org.springframework.beans.factory.support.DefaultListableBeanFactory;import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;public class run_test {    public static void main(String[] args) {        fun3();    }    public static void fun1(){        Resource resource = new ClassPathResource("applicationContext.xml");        BeanFactory factory = new DefaultListableBeanFactory();        BeanDefinitionReader  reader = new XmlBeanDefinitionReader((BeanDefinitionRegistry) factory);        reader.loadBeanDefinitions(resource);        Student1 student1 = (Student1) factory.getBean("student1");        System.out.println(student1);    }    public static void fun2(){        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");        Student1 student1 = (Student1) ac.getBean("student1");        System.out.println(student1);    }    public static void fun3(){        Resource resource1 = new ClassPathResource("applicationContext.xml");        BeanFactory beanFactory1 = new XmlBeanFactory(resource1);        Student1 student1 = (Student1) beanFactory1.getBean("student1");        System.out.println(student1);    }}复制代码

只有第二种才能正确的创建studnent1的bean,fun1() 和 fun3()结果都是

Student{name='null', age=0}复制代码

转载于:https://juejin.im/post/5b669d22e51d451924734c3e

你可能感兴趣的文章
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
Mono for Android 优势与劣势
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
js 面试题
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
试水区块链出版?纽约时报在招人了
查看>>
拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
查看>>
QCon演讲速递:异步处理在分布式系统中的优化作用
查看>>
Javascript 中的 Array 操作
查看>>
YARN的AsyncDispatcher原理
查看>>
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>