• 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类即可。

     

  • 相关阅读:
    ForeignKey 的第二个位置参数on_delete
    我们为什么要用springcloud?
    使用springcloud zuul构建接口网关
    分布式环境 限流解决方案
    Spring Cloud限流思路及解决方案
    SpringBoot初始教程之Redis集中式Session管理
    分布式高并发下全局ID生成策略
    分布式日志收集收集系统:Flume(转)
    深入理解Java类加载器(ClassLoader) (转)
    各类排序算法复杂度比较
  • 原文地址:https://www.cnblogs.com/quchengfeng/p/4112593.html
Copyright © 2020-2023  润新知