zoukankan      html  css  js  c++  java
  • Spring主要用到两种设计模式

    Spring主要用到两种设计模式

    1、工厂模式

    Spring容器就是实例化和管理全部Bean的工厂。

    工厂模式可以将Java对象的调用者从被调用者的实现逻辑中分离出来。

    调用者只关心被调用者必须满足的某种规则,这里的规则我们可以看做是接口,而不必关心实例的具体实现过程,具体实现由Bean工厂完成。

    2、单例模式

       Spring默认将所有的Bean设置为单例模式,即对所有相同的Bean请求,都将返回同一个共享Bean实例,这样就可以大大减低Java对象创建和销毁时的系统开销。

    使用SpringBean设置为单例模式,则无需自己完成单例模式。

    实例:

    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,表示这个生成的是单例模式,同一个实例对象
    

      运行效果

  • 相关阅读:
    git使用总结
    将本地项目上传到git
    ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常
    SQLQueryStress
    SQL Server 触发器
    HTTP 错误 404.3
    HTTP 错误 500.19 Internal Server Error的解决方法
    windows server 2012 配置多用户ftp服务器配置注意点
    自定义Remote验证(对博客园文章“Asp.net MVC验证哪些事(3)-- Remote验证及其改进(附源码)”自定义验证的改进)
    [ASP.net教程]IIS服务器 远程发布(Web Deploy)配置
  • 原文地址:https://www.cnblogs.com/schangxiang/p/11143061.html
Copyright © 2011-2022 走看看