spring学习1
2015-06-25 11:24
459 查看
工程目录如下
要加入的jar文件有三个。
下面比较IoC与传统bean调用的不同。
接口类
接口实现类
传统的bean调用
要先实例化一个对象 ,通过对象来使用这个类的方法。
IoC容器实现
在xml文件中配置类,类的属性,类的方法和类之间的关系 。
spring提供了很好的测试方法,可以了解配置的类是否在spring容器中实例化。
两者对比
传统的方法:通过接口访问对象要实例化,这增加了代码之间的耦合度,调用时还要了解实现接口类中定义的方法,还不容易对生成的对象进行管理。
容器管理方式:当程序中用到这个对象的时候,依赖容器进行实例化,实现方法调用时,只要参考接口中的实现方法,还可以对对象进行管理,消除。
Spring可以用在任何java项目中,从一定程序上说,它是对jdk的扩展,也是相对独立的,可以当作是一个管理java类的容器。
要加入的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类的容器。
相关文章推荐
- Java后台实现方法
- Java Reflection(二):Classes
- LeetCode_50---Pow(x, n)
- java使用UDP协议传输数据
- Java线程池使用说明
- 【转】windows上自动设置java环境变量的脚本
- java垃圾回收机制
- 转发路径下的反斜杠,文件系统中的反斜杠;struts中的servletpath路径与springmvc中servlet请求路径不一样
- 【Java编程思想】(6)内部类
- JDK,JRE,JVM区别与联系
- 【转】java jvm 线程 与操作系统线程
- Kettle5.4.0 java.lang.OutOfMemoryError
- Java Reflection(一):Java反射指南
- 《Java程序设计》第十六周周四(项目2)
- Java中list集合对比方法
- java.lang.RuntimeException: Camera is being used after Camera.release() was called
- Eclipse上的Android工程显示出错,但是其实没有异常解决
- 【Spring学习笔记-MVC-8.1】SpringMVC之类型转换@initBinder
- 把自己的jsp或html模板添加到myeclipse中
- JAVA的基本数据类型打印输出