• spring学习1


    工程目录如下

    要加入的jar文件有三个。

    下面比较IoC与传统bean调用的不同。

    接口类

    package wen;
    
    public interface Hello {
    	public String world= null;
    	public String setWords(String world) ;
    	public void getWords();
    }
    

    接口实现类

    package wen;
    
    public class HelloImp implements Hello{
    	private String wString ;
    	
    	public HelloImp(){
    		System.out.println("我被容器自动调用");
    	}
    	
    	@Override
    	public String setWords(String world) {
    		this.wString = world ;
    		return wString;
    	}
    
    	@Override
    	public void getWords() {
    		System.out.println("第一个spring:"+wString);
    	}
    
    }
    

    传统的bean调用

    要先实例化一个对象 ,通过对象来使用这个类的方法。

    package wen;
    
    public class Test {
    	public static void main(String [] args ){
    		Hello hello = new HelloImp() ;
    		hello.setWords("你好") ;
    		hello.getWords(); 
    	}
    }
    

    IoC容器实现 

    在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/beans
    	http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    	<bean id="hello" class="wen.HelloImp">
    	</bean>
    </beans>
    

    spring提供了很好的测试方法,可以了解配置的类是否在spring容器中实例化。

    package wen;
    
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.core.io.ClassPathResource;
    
    public class HelloFactory {
    	public static void main(String [] args){
    		XmlBeanFactory bFactory = new XmlBeanFactory(
    				new ClassPathResource("spring.xml")) ;
    		Hello hello = (Hello)bFactory.getBean("hello") ;
    		
    		hello.setWords("你好") ;
    		hello.getWords(); 
    		bFactory.destroySingleton("hello");
    	}
    }
    

    两者对比 

    传统的方法:通过接口访问对象要实例化,这增加了代码之间的耦合度,调用时还要了解实现接口类中定义的方法,还不容易对生成的对象进行管理。

    容器管理方式:当程序中用到这个对象的时候,依赖容器进行实例化,实现方法调用时,只要参考接口中的实现方法,还可以对对象进行管理,消除。

    Spring可以用在任何java项目中,从一定程序上说,它是对jdk的扩展,也是相对独立的,可以当作是一个管理java类的容器。 

      

      

  • 相关阅读:
    基元线程同步构造之用户模式易变构造volatile
    C# 基元线程同步构造
    idea 的Low Memory问题
    python工具——xmind
    VSCODE 远程开发树莓派
    firefox临时文件位置及修改方法
    Veeam Backup & Replication 9.5 备份方式详解
    Windows下登录凭证密码获取工具
    VMProtect虚拟机保护分析入门
    Applescrip
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4599521.html
Copyright © 2020-2023  润新知