码迷,mamicode.com
首页 > 编程语言 > 详细

Some About Spring

时间:2015-12-30 00:22:58      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

什么是Spring:Spring是一个从实际开发中抽取出来的框架,它对代码中需要重复解决的步骤抽象成为了一个框架。留给开发者的仅仅是与特定应用相关的部分,大大提高了企业应用的开发效率。例外、Spring也提供了一种Template设计原理,对大量的通用步骤进行了封装,开发者只需调用Template,而无须自己再次实现那些通用步骤。

Spring框架的基础:即:工厂模式与服务定位器模式等。

Spring是为企业应用开发提供的一个轻量级解决方案,包括:基于依赖注入的核心机制,基于AOP的声明式事务(联想下编程式事务),整合多种持久层技术的整合,整合很多优秀的WEB MVC框架等。

Spring框架的组成结构图:

技术分享

 

使用Spring框架的优点:

1、 低侵入式设计,代码的污染极低

2、 Spring容器降低了业务对象替换的复杂性,提高了组件之间的解耦。

3、 Spring的AOP支持允许将一些通用任务如:安全,事务,日志等进行集中式处理,从而提供了更好的复用。

4、 Spring的ORM和DAO提供了与第三方持久化框架的良好整合,并简化了底层的数据库访问。

5、 Spring的高度开发性,并不强制应用完全依赖于Spring,开发者可自由选择Spring框架的部分或全部。

 Spring框架的核心机制---IOC

搭建一个简单的spring框架

 

1、 首先创建一个web应用

 

2、导入必须的jar文件

 

技术分享

(此处采用4.2版本)文件在http://www.springsource.org/download上下载。

3、 编写spring框架的应用上下文配置文件applicationContext.xml,该文件发在src目录下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd 
                        http://www.springframework.org/schema/aop
                        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
                        http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
                        
                    
                
</beans>

4、 为了让Spring容器管理实体Bean,我们增加一个些Java类文件。 例如:

package com.my.beans;

public class UserInfoT {
    private Long id;
    private String userName;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    
    
}

5、 在applicationContext.xml中添加对该对象的配置:

<!-- spring容器创建实例化对象,并设置其userName属性 -->

<bean name="userInfoBean" class="com.lovo.beans.UserInfoT">

<property name="userName" value="UserName"></property>

</bean>

6、 最后完成调用

技术分享

通过前面的实例,程序代码并没有主动设置UserInfoT对象实例的userName属性,但是在执行调用对象实例的属性时,属性值为“UserName”,而属性都是在spring配置文件中配置的,这也就是说,对象实例的属性值不是程序主动设置的,而是由spring容器来负责注入的。

 

调用者依赖容器设置属性或者注入其他Bean的引用的这种方式,我们通常叫做“依赖注入”或“控制反转”,即springIOC。所谓依赖注入,是指程序运行过程中,如果需要另一个对象协作(调用它的方法,访问它的属性)时,无须在代码中创建被调用者,而是依赖于外部容器的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。

 

使用依赖注入,不仅可以为Bean注入普通的属性值, 还可以注入其他Bean的引用。通过这种依赖注入,JavaEE应用中的各种组件不需要以硬编码方式耦合在一起,甚至无须使用工厂模式。依赖注入所达到的效果,非常类似于传送的“共产主义”,当某个JAVA实例需要其他JAVA实例时,系统自动提供所需要的实例,无须程序显式获取。

依赖注入是目前最优秀的解耦方式,依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。

在工作中, JAVA实例的调用者通过new关键字来创建被调用者的JAVA实例,程序高度耦合,效率低下,真实的应用极少使用这种方式,一般是初学者最喜欢。

 

Some About Spring

标签:

原文地址:http://www.cnblogs.com/Spirit612/p/5087455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!