发布于 2014-12-11 13:23:21 | 257 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的精品教程,程序狗速度看过来!

Spring Framework 开源j2ee框架

Spring是什么呢?首先它是一个开源的项目,而且目前非常活跃;它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等


本文为大家讲解的是Spring的下载和安装,感兴趣的同学参考下.

Spring Framework简介

Spring是什么呢?首先它是一个开源的项目,而且目前非常活跃;它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等

Spring Framework安装

一、在JavaSE应用中使用Spring

1、下载Spring(下载1)

       下载:spring-frameword-3.05.RELEASE-with-docs.zip(Spring框架及文档) + spring-frameword-3.0.5.RELEASE-dependencies.zip(Spring框架编译和运行所依赖的第三方类库)

       spring-frameword-3.05.RELEASE-with-docs.zip目录结构:

       dist:包含Spring的JAR包;由20个分模块的Jar包组成,不同的Jar包提供不同的功能;一般Core Container对应的Jar包是使用Spring必须的

       docs:存放Spring的相关文档,包含开发指南、API参考文档

       projects:存放Spring分模块的项目结构,包括项目源代码、Maven的生成文件、Ant+lvy的生成文件

       src:包含Spring分模块的项目源代码;每个Jar包包含一个分模块的项目的源代码

       其他关于Spring的license和项目相关文件

2.将dist目录下所需模块的JAR包复制到项目CLASSPATH路径下;如需发布该应用,则将这些jar包一同发布即可;若无太多约束,建议复制dist目录下的全部jar包

3.解压spring-frameword-3.0.5.RELEASE-dependencies.zip;该目录下包含了Spring框架编译和 运行所依赖的第三方类库,具体需哪些jar文件,取决于应用所用到的项目;通常需增加common-logging等文件夹下的JAR文件


二、在Web应用中使用Spring         

                 将Spring项目的dist路径下全部JAR包复制到Web应用WEB-INF/lib路径下

                 将Spring的spring-framework-3.0.5.RELEASE-dependencies.zip解压缩路径下所需第三方类库复制到Web应用WEB-INF/lib路径下

          

三、在Eclipse中开发Spring应用

新建用户库为该项目增加Spring支持

Add Libraries --> User Library

编写主程序,该主程序仅仅初始化Spring容器,Spring容器是Spring应用的核心,该容器负责管理容器中的Java组件  
public class SpringTest {  
    public static void main(String[] args) {  
       // 读取配置文件  
          创建Spring容器  
          创建Spring中的bean: Spring容器的bean组件是在容器创建和实例化的时候一起创建并初始化的  
           
       ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");  
       // ApplicationContext context = new FileSystemXmlApplicationContext(  
       // "beans.xml");  
        
       // Resource resource = new ClassPathResource("beans.xml");  
       // BeanFactory context = new XmlBeanFactory(resource);  
        
       // 输出Spring容器  
       System.out.println(context);  
        
       // 通过Spring容器获取  
       PersonService p = context.getBean("personService", PersonService.class);  
       p.info();  
    }  
}  
ApplicationContext实例是Spring容器,是Spring的核心,他是一个功能超强的巨大工厂;一旦获得Spring容器,就可通过该容器访问Spring容器中的Bean  
Spring容器并不强制要求被管理组件是标准JavaBean  
   
Spring容器根据配置文件信息,负责创建PersonService实例,并为其设置属性值-----这种由Spring容器为对象设置属性的方式被称为控制反转(Inversion of Control,IoC)

public class PersonService {  
    private String name;  
     
    // 省略name的setter、getter方法  
     
    public void info() {  
       System.out.println("此人名为:" + name);  
    }  

bean.xml:  
<?xml version="1.0" encoding="UTF-8"?>  
<!-- Spring配置文件的根元素,使用spring-beans-3.0.xsd语义约束 -->  
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns="http://www.springframework.org/schema/beans"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-lazy-init="true”>  
    
   <!—将PersonService类部署成Spring容器中的Bean -->  
    <bean id="personService" class="com.PersonService"  lazy-init="true" scope=”singleton” init-method="myInit" destroy-method="mhyDestroy">  
       普通属性注入:  
       <property name="name" value="zhangsan" />  
       类类型属性注入:  
       <property name=”b1” ref=”bean1” />  
    </bean>  
   
    <bean id=”bean1” class=”come.Bean1” />  
--------------------------------------------------------------------------------------------------------------  
      根标签:defualt-lazy-init=“true“(所有对象延迟创建)  
      bean标签:lazy-init=”true”(延迟创建bean对象;容器创建的时候不创建该对象,当调用getBean方法的时候才创建)  
       
      --------------------------------------------------------------------------------------------------------------  
      scope=”singleton”:spring默认创建对象的方式为singleton模式,即用同一个id创建的对象是同一个对象  
       
      scope取值:  
      singleton:单例(只有一个对象)  
      prototype:每次调用getBean方法容器创建一个新的bean  
       
      仅用于web应用,将对象放置到以下指定作用域中  
      request:  
      session:  
      global session:相当于application  
       
      --------------------------------------------------------------------------------------------------------------  
      init-metod=“对象初始化方法名“:指定对象初始化的时候调用的方法  
      destroy-method=“对象销毁方法名“:指定对象销毁的时候调用的方法;该属性只有scope=”singleton“的时候才生效  
       
      对象是在容器关闭或销毁的时候才销毁  
   
   
   
构造方法注入:  
    private A a;  
    private String b;  
   
    public Main(A a, String b) {  
       this.a = a;  
       this.b = b;  
    }  
---------------------------------------------------------  
-   <constructor-arg index="0" ref="a" />              
-      <constructor-arg index="1" value="abc" />          
-   </bean>                                                
-                                                         
-   <bean id="a" class="com.A"></bean>                     
---------------------------------------------------------  
   
</beans>


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务