Spring主要用到两种设计模式
2019-08-16 09:52:25来源:博客园 阅读 ()
Spring主要用到两种设计模式
Spring主要用到两种设计模式
1、工厂模式
Spring容器就是实例化和管理全部Bean的工厂。
工厂模式可以将Java对象的调用者从被调用者的实现逻辑中分离出来。
调用者只关心被调用者必须满足的某种规则,这里的规则我们可以看做是接口,而不必关心实例的具体实现过程,具体实现由Bean工厂完成。
2、单例模式
Spring默认将所有的Bean设置为单例模式,即对所有相同的Bean请求,都将返回同一个共享Bean实例,这样就可以大大减低Java对象创建和销毁时的系统开销。
使用Spring将Bean设置为单例模式,则无需自己完成单例模式。
实例:
Ink.Java
package com.pb; /** * * 项目名称:PB_SpringDemo * 类名称:Ink * 类描述: 墨盒接口 * 创建人:Administrator * 创建时间:2019年7月6日 下午3:05:06 * 修改人:Administrator * 修改时间:2019年7月6日 下午3:05:06 * 修改备注: * @version * */ public interface Ink { //获取墨盒颜色的方法 public String getColor(); }
ColorInk.Java
package com.pb; public class ColorInk implements Ink { @Override public String getColor() { return "使用彩色墨盒打印"; } }
GreyInk.Java
package com.pb; public class GreyInk implements Ink { @Override public String getColor() { return "采用黑色墨盒打印"; } }
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="color" class="com.pb.ColorInk"/> <bean id="grey" class="com.pb.GreyInk"/> </beans>
Test.Java
//使用Spring的方式 //创建Spring上下文 ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); //测试Spring工厂模式 Ink k1=null; k1=(Ink)context.getBean("color"); System.out.println(k1.getColor()); Ink k2=(Ink)context.getBean("grey"); System.out.println(k2.getColor()); Ink k11=(Ink)context.getBean("color");//验证是否是单例模式 System.out.println(k1==k11);//输出 True,表示这个生成的是单例模式,同一个实例对象
运行效果
原文链接:https://www.cnblogs.com/schangxiang/p/11143061.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash