`
javawangli
  • 浏览: 221513 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring不是“春天”

阅读更多



 Spring不是“春天”

      spring在英文里有春天、弹簧、跳跃和泉眼的意思。但在javaSpring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

     版本:现在spring的最高版本是3.0.0版本,在此文章中我们以2.5.6为例  

     目的:解决企业应用开发的复杂性       

     功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能   

     范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。         

     控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoCJNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。   

     面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。   

      容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。   

      框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。   所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持

      下载安装spring--------spring当前的最高把版本是3.0.0,文章以2.5.6为例,登录http://www.springsource.org/站点,点击powloads连接进入download页面下载!

      

Spring的第一个案例hello world

添加spring配置文件    

src下新建一个applinactionContext.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.5.xsd"> 

</beans>

 经过配置,一个Spring的应用程序基本就搭建好。图如下

     

  环境搭建好之后我们就以hello world 为例来体验一次sping带来的快感

     接下在src下新建一个cn.csdn.dao包,在包中创建接口GrerrtingDAOdao方法GreetingDAOImpl

   接下来在src下创建service层及cn.csdn.service包,创建GreetingService接口和GreetingServiceImpl 方法

 

 

接口GrerrtingDAO

     

package cn.csdn.dao;

   public interface GreetingDAO {

  public void say();

}


GreetingDAOImpl方法


  package cn.csdn.dao;

public class GreetingDAOImpl implements GreetingDAO{

private String say;

public void say() {

       System.out.println("我说的是:"+say);


}

public void setSay(String say) {

this.say = say;

}


}

 

    

GreetingService接口


   

package cn.csdn.service;


public interface GreetingService {

void say();


}


GreetingServiceImpl 方法


package cn.csdn.service;

import cn.csdn.dao.GreetingDAOImpl;

public class GreetingserviceImpl implements GreetingService { 

private GreetingDAOImpl GreetingDAOImpl; 

public void say() {

GreetingDAOImpl.say();

}

public void setGreetingDAOImpl(GreetingDAOImpl greetingDAOImpl) {

this.GreetingDAOImpl = greetingDAOImpl;

}

    

}

 

      

相应的层创建完之后我们在配置spring配置文件

 

 

 

  

最后用junit4进行测试

 

 

  

package cn.csdn.jutil;



import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.csdn.service.GreetingserviceImpl;

public class Springtest { 

     @Test

public void test(){

ApplicationContext ac =new ClassPathXmlApplicationContext("appincationContext.xml");

  GreetingserviceImpl gss=(GreetingserviceImpl) ac.getBean("greetingserviceImpl");

  gss.say();



}



}

后台输出:

  我说的是:hello world

 

 

 Spring的体验到此结束,经过此次体验知道了spring中的许多优点,我总结一下:

优点1Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。 

优点2Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。 

     

      

   

 

<!--EndFragment-->
  • 大小: 9.1 KB
1
4
分享到:
评论

相关推荐

    spring知识框架详解

    Spring : 春天 —&gt;给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。 很难想象Rod ...

    Spring story春天的故事卡通PPT模板下载.rar

    yle="width: 640px; height: 480px;" /&gt;yle="width: 640px;...绿色清新的Spring story春天的故事卡通PPT模板下载,关键词:清新绿色模板背景,春天主题幻灯片,气球、小房子、彩虹、泡泡PPT背景图片,卡通幻灯片模板;

    Spring Framework 6 中文文档

    目前中文互联网上的所有中文文档几乎都是“谷歌一键翻译”,内容晦涩难懂,充满了“春天,弹簧,豆子”这种令人啼笑皆非的翻译内容,而且常年未更新,版本还停留在N年前。所以,我们花了一点点时间,整理,翻译出了...

    Spring春天来了大气宽屏wordpress模板下载5101.zip

    Spring春天来了大气宽屏wordpress模板下载5101.zip

    Spring 实战基础

    1.spring:给软件行业带来了春天; 2.spring的理念:spring框架的初衷是使的现有的更加实用,spring不是创造轮子(技术或框架),而是使现有的轮子更好的运转;spring本身是一个大杂烩,整合现有的框架技术; 3.Spring...

    spring源码 spring

    spring源码下载 不是春天 spring框架

    Spring Boot 3 中文文档

    目前中文互联网上的所有中文文档几乎都是“谷歌一键翻译”,内容晦涩难懂,充满了“春天,弹簧,豆子”这种令人啼笑皆非的翻译内容,而且常年未更新,版本还停留在N年前。所以,我们花了一点点时间,整理,翻译出了...

    春天spring启动boot.rar

    没有建立起稳定、规范的IT运维机制。现有的IT运维流程的操作层面缺乏统一。如事件单提交之后,事件预判和优先级的设定缺少统一、规范的指导文档,仅以人员的主观经验或约定俗成的方式指导事件的处理过程。...

    spring XML配置文件和相关的包

    spring在英文里有春天、弹簧、跳跃和泉眼的意思。Spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时...

    spring-example:春天的例子

    春天的例子这是Spring示例的集合:Spring Web应用程序(无Spring Boot) 一个示例,演示了如何在不借助Spring Boot的情况下配置基于Spring Framework的Web应用程序。微服务这是提供REST服务的Spring后端应用程序的...

    Spring story春天的故事卡通下载PPT模板

    yle=width: 640px;... / 绿色清新的Spring story春天的故事卡通PPT模板下载,关键词:清新绿色模板背景,春天主题幻灯片,气球、小房子、彩虹、泡泡PPT背景图片,卡通幻灯片模板; yle=width: 640px; height:

    2020Spring春天来了大气宽屏wordpress模板下载5101_企业网站模板PHP整站源码.zip.7z

    2020Spring春天来了大气宽屏wordpress模板下载5101_企业网站模板PHP整站源码.zip.7z

    study-spring:春天学习项目笔记

    学习春天个人学习Spring项目笔记

    spring-oauth-server

    添加trusted字段以检查客户端是否受信任取消不必要的配置不同的资源配置不同的角色access_token,代码保存到数据库(替换保存到内存)依赖框架版本春天(3.1.1.RELEASE) Spring Security(3.1.0.RELEASE) MyBatis...

    spring-examples:春天的例子

    Spring ExamplesDemo website:对Spring框架的学习,包括一些经典的案例和demo,一些可以直接用于生产。:spring4+mybatis3的增删改查的例子:对mybaits的简单封装,方便简单的调用和多数据源的配置:使用atomikos来...

    spring-petclinic:春天的诊所

    SpringPetClinic样品申请它是什么样子的? -spring-petclinic已在此处部署在cloudfoundry上: ://demo-spring-petclinic.cfapps.io/通过一些图表了解Spring Petclinic应用程序在本地运行诊所git clone ...

    springcloud:春天

    春云 春天

    hello-spring:无知的春天

    hello-spring:无知的春天

    spring-xml:春天的XML

    Springxml 春天的XML

    Spring:我的春天计划!

    Spring:我的春天计划!

Global site tag (gtag.js) - Google Analytics