Spring 之 第一个hellword

Rod Johnson2002年编著的《Expert one to one J2EE design and development》一 书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004324日,发布了1.0正式版。同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。

传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write OnceRun Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。 

Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的一站式选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

 

 

spring优势

 

} 依赖注入/控制反转(DI/IOC). 说白了就是根据配置文件动态组装复杂对象,实现了松耦合

 

} AOP(面向切面编程)

 

} 提供简易的服务抽象 

 

} 集成管理各种框架 

 

我们开始使用spring,完成我们的第一个最简单的helloworld。步骤如下:

  1. 建立java项目spring1(注:普通java项目即可)
  2. dist目录下的spring.jar包添加到项目类依赖库中
  3. lib/jakata-commons/commons-logging.jar加到项目依赖库中。

 

  1. 建立一个UserDao类:

package com.sxt.test;

 

public class UserDao {

public void add(String uname,String pwd){

System.out.println("增加一个用户!");

}

}

 

   2、增加配置文件beans.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"

xmlns:p="http://www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

 

<bean id="userDao" class="com.sxt.test.UserDao"></bean>

 

</beans>

 

通过上面的配置文件,spring框架知道了UserDao类的存在!可以通过反射机制自动将UserDao类的对象new出! 所以注意托管给spring的类必须符合基本的javabean规范:

  1. 如果有属性,则必须有相应的get/set方法。 
  2. 必须要无参的构造器 

 

3、建立Test.java

package com.sxt.test;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

public class Test {

public static void main(String[] args){

// UserDao userDao = new UserDao();

// userDao.add("a", "123");

 

ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});

UserDao userdao = (UserDao) context.getBean("userDao");

userdao.add("d", "222");

}

}

 

上面的代码中,我们可以使用context.getBean("userDao")代替了new UserDao(这样的代码,也就是spring内部有个工厂类,替我们完成了new对象的操作!而这个工厂类是通过读取beans.xml文件知道了字符串”userDao”和com.sxt.test.UserDao类之间的关系!

直接运行Test.java类即可。

 

原文地址:https://www.cnblogs.com/quchengfeng/p/4112593.html