当前位置: 首页 > news >正文

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

相关文章:

  • nodejs实现webservice问题总结
  • matlab2014在mac Yosemite下出现java空指针情况
  • DECLARE_MESSAGE_MAP 宏
  • Apache发布NetBeans 10.0,增强对JDK 11的支持
  • Shadow DOM 内部构造及如何构建独立组件
  • 打印二叉树某一层次的值(重点)
  • 单例模式中用volatile和synchronized来满足双重检查锁机制
  • getName和getSimpleName方法一般使用
  • 博客迁移:https://blog.llyweb.com
  • 20141102-微信.NET-笔记
  • Java知识体系梳理
  • java 一些容易忽视的小点-数据类型和运算符篇
  • 设计模式--代理(Proxy)模式
  • 系统设计(系列二)--现上问题整理(云崩溃和服务不可用)
  • 医疗行业邮件服务器架设方案
  • Git同步原始仓库到Fork仓库中
  • HTML5新特性总结
  • JavaScript服务器推送技术之 WebSocket
  • Joomla 2.x, 3.x useful code cheatsheet
  • Js基础知识(四) - js运行原理与机制
  • Map集合、散列表、红黑树介绍
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • ubuntu 下nginx安装 并支持https协议
  • vue学习系列(二)vue-cli
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 第2章 网络文档
  • 复杂数据处理
  • 机器学习 vs. 深度学习
  • 基于游标的分页接口实现
  • 类orAPI - 收藏集 - 掘金
  • 算法-图和图算法
  • 一个项目push到多个远程Git仓库
  • 栈实现走出迷宫(C++)
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​批处理文件中的errorlevel用法
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #define,static,const,三种常量的区别
  • #pragma data_seg 共享数据区(转)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #每日一题合集#牛客JZ23-JZ33
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (14)Hive调优——合并小文件
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二)构建dubbo分布式平台-平台功能导图
  • (规划)24届春招和25届暑假实习路线准备规划
  • (十六)串口UART
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)