Spring中3种实例Bean的方法及设置Bean的别名
目录
基本概念
代码及演示
对Bean的感悟
基本概念
学习使用Spring实例化Bean
1. 通过构造方法实例化Bean;
2. 通过静态方法实例化Bean;
3. 通过实例方法实例化Bean
Spring设置Bean的别名
代码及演示
程序运行截图如下:
程序结构如下:
Bean1.java
package bean4test.Ioc;public class Bean1 {public Bean1(){System.out.println("Bean1.Bean1");}
}
Bean2.java
package bean4test.Ioc;public class Bean2 {public Bean2(){System.out.println("Bean2.Bean2");}
}
Bean2Factory.java
package bean4test.Ioc;public class Bean2Factory {public static Bean2 getBean2(){return new Bean2();}
}
Bean3.java
package bean4test.Ioc;public class Bean3 {public Bean3(){System.out.println("Bean3.Bean3");}
}
Bean3Factory.java
package bean4test.Ioc;public class Bean3Factory {public Bean3 getBean3(){return new Bean3();}
}
spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean class="bean4test.Ioc.Bean1" id="bean1" name="bean1_1, bean1_2"/><alias name="bean1" alias="bean1_3" /><bean class="bean4test.Ioc.Bean2Factory" factory-method="getBean2" id="bean2"/><bean class="bean4test.Ioc.Bean3Factory" id="bean3Factory" /><bean class="bean4test.Ioc.Bean3" factory-bean="bean3Factory"factory-method="getBean3" id="bean3" />
</beans>
DemoApplicaitonTests.java
package bean4test.demo;import bean4test.Ioc.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {@Testpublic void contextLoads() {ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");Bean1 bean1 = context.getBean("bean1", Bean1.class);System.out.println("bean1 = " + bean1);//传统方法//Bean2 bean2 = Bean2Factory.getBean2();Bean2 bean2 = context.getBean("bean2", Bean2.class);System.out.println("bean2 = " + bean2);//传统方法//Bean3Factory bean3Factory = new Bean3Factory();//Bean3 bean3 = bean3Factory.getBean3();Bean3 bean3 = context.getBean("bean3", Bean3.class);System.out.println("bean3 = " + bean3);//别名Bean1 bean1_1 = context.getBean("bean1_1", Bean1.class);System.out.println("bean1_1 = " + bean1_1);Bean1 bean1_2 = context.getBean("bean1_2", Bean1.class);System.out.println("bean1_2 = " + bean1_2);Bean1 bean1_3 = context.getBean("bean1_3", Bean1.class);System.out.println("bean1_3 = " + bean1_3);}
}
对Bean的感悟
个人觉得用传统的方法和使用Spring的Bean比较起来,Spring在逻辑上更加的清晰,因为利用了Java反射的机制,而C++程序员喜欢传统的方法,因为这个能看得到!
学了Spring的方法后,发现Java真的很6的语言!
Spring中3种实例Bean的方法及设置Bean的别名相关推荐
- Spring中两种编程式事务管理
Spring中两种编程式事务管理 在代码中显示调用beginTransaction,commit,rollback等与事务处理相关的方法,这就是编程式事务管理,当只有少数事务操作时,编程式事务管理才比 ...
- @async方法不调用了_在Spring中使用Future对象调用Async方法调用
@async方法不调用了 下一个示例将演示Spring容器内部的异步方法调用. 为什么我们需要异步方法调用? 在某些情况下,我们并不真正知道是否需要重播或何时应返回结果. 传统方式在Java EE世界 ...
- 在Spring中使用Future对象调用Async方法调用
下一个示例将演示Spring容器内部的异步方法调用. 为什么我们需要异步方法调用? 在某些情况下,我们并不真正知道是否需要重播或何时应返回结果. 传统方式在Java EE的异步处理世界中,使用队列/主 ...
- QT中三种构建菜单栏的方法
QT中三种构建菜单栏的方法 方法1 <C++ GUI programming with Qt 4, Second Edition>给出的一种方法:QMenum定义单个菜单,调用menuBa ...
- java中高效遍历list_Java中四种遍历List的方法总结(推荐)
实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...
- java遍历list_Java中四种遍历List的方法总结(推荐)
实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...
- tomcat中三种部署项目的方法(转)
tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/h ...
- Unity(游戏)中五种数据存储的方法
Unity(游戏)中五种数据存储的方法 一.PlayerPrefs unity3d提供了一个用于本地持久化保存与读取的类-------PlayerPrefs.工作原理很简单,以键值对的形式将数据保存在 ...
- matlab中几种求积分的方法
matlab中几种求积分的方法 举例图形 Midpoint Rule Trapezoid Rule 13 Simpsons 利用integral 结果显示 matlab中几种求积分的方法 最近看了几天 ...
最新文章
- Java 参数后面跟三个... 的作用
- 不要在桌面保存长期修改的文件否则系统挂了时候面临文件丢失的问题,长期总结面试资料(公司 题目 地址 氛围 加班情况 薪资情况)毁于一旦
- Java并发编程,无锁CAS与Unsafe类及其并发包Atomic
- 如何查看开发者账号何时到期
- 分布式事务不理解?一次给你讲清楚!
- Java垃圾回收(GC)机制详解
- C++实现successive approximation渐进法(附完整源码)
- html调用xfplugin,使用多设备执行脚本的时候,html report功能无法正常使用
- linux下如何分区格式化硬盘,Linux之磁盘如何分区,格式化挂载
- 各种数据库的分页查询
- 使用DotNet以来一直都有出现这样的问题
- 【学堂在线数据挖掘:理论方法笔记】第三天(3.27)
- siamfc代码解读_分析SiamFC
- html js3d魔方,40行JavaScript代码实现的3D旋转魔方动画效果
- 视频演示 | 功能新增 | 增强版在线LEFSe分析和可视化鉴定标志性基因或物种
- 用于分类的神经网络算法,图像识别神经网络算法
- 安装TypeScript
- 控制反转 vs 依赖注入
- vcpu和cpu的关系
- 西瓜口袋拼团商城系统搭建相关问题
热门文章
- 做一个程序员,是不是“努力就会成功”?现实残酷但又必须面对!
- 大学生及转行学IT编程,必须做到这4点,做不到!建议放弃编程方向
- 原创内容的17PK飞鸽传书
- 即时通讯的企业应用和个人应用的区别
- 中科院,NASA日全食网络直播[多个观测点入口]
- 用VC写Assembly代码(1)
- 第十三节:易学又实用的新特性:for...of
- android studio annotations,AndroidStudio 添加AndroidAnnotations -电脑资料
- git reset后本地拉取_Git 代码防丢指南
- OpenCV中直方图均衡化