实验一SPRING环境配置
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public void read(){ try (BufferedReader reader = new BufferedReader( new InputStreamReader(System.in))){ System.out.println("请输入你的卡号:"); String account = reader.readLine(); System.out.println("充值金额:"); String money = reader.readLine();
user.setAccount(account); user.setMoney(money); recharge();
} catch (IOException e) {
} }
}
3. 创建主类 RechargeApp
package webadv.example.ch01;
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
4、Spring DAO:JDBCDAO 抽象层提供了有意义的异常层次结构,可用该结 构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错
误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。 Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
</bΒιβλιοθήκη Baiduan>
</beans>
5. 运行结果
(二)简述 Spring 的发展历史。 1.Spring 名字来源
框架需要一个名字,书中所指的是 Interface21 框架,因为代码中用的是 com.interface21 的包名,不过这不是一个鼓舞社区的名字.幸运的是 Yann 给了一个建议“Spring”,他取名是来自于自然界,实际上 Spring 代表传统 J2EE 冬天的过去。 2.Spring 的发展
public class ChargeService {
private User user;
public ChargeService(User account){ this.user=account;
}
public void recharge(){
成功!"); }
System.out.println("您好"+user.getAccount()+"用户,你的账户充值 System.out.println("充值金额为:"+user.getMoney());
(五)你是如何理解 Spring 的? Spring 能有效地组织你的中间层对象,无论是否选择使用了 EJB。如果仅仅 使用了 Struts 或其他的包含了 J2EE 特有 APIs 的 framework, Spring 关注了遗 留下的问题。Spring 能消除在许多工程上对 Singleton 的过多使用。根据我的 经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。 Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工 程中,可通过一种一致的方法来进行配置。有了 Spring,可以很简单地看到类 的 JavaBean 属性。倒置控制的使用帮助完成这种简化。
南昌航空大学实验报告
姓名:钟起龙
学号:13203140
课程:Spring
一、实验目的 1、 掌握 Spring 框架的基本结构;
实验名称:Spring 环境配置
2、 掌握 Spring 框架的基本用法;
3、 掌握 Spring 配置文件的编写方法;
4、 理解 Spring 框架中 IOC、DI、容器等核心概念。
(四)解释以下概念:IoC、DI。 DIP 是一种 软件设计原则,它仅仅告诉你两个模块之间应该如何依赖,但 是它并没有告诉如何做。IoC 则是一种 软件设计模式,它告诉你应该如何做, 来解除相互依赖模块的耦合。控制反转(IoC),它为相互依赖的组件提供抽象, 将依赖(低层模块)对象的获得交给第三方(系统)来控制,即依赖对象不在被 依赖模块的类中直接通过 new 来获取。在图 1 的例子我们可以看到,ATM 它自身 并没有插入具体的银行卡(工行卡、农行卡等等),而是将插卡工作交给人来控 制,即我们来决定将插入什么样的银行卡来取钱。同样我们也通过软件开发过程 中场景来加深理解。 控制反转(IoC)一种重要的方式,就是将依赖对象的创建和绑定转移到被 依赖对象类的外部来实现。在上述的实例中,Order 类所依赖的对象 SqlServerDal 的创建和绑定是在 Order 类内部进行的。
三、实验步骤 (一)使用 Spring 编写一个公交卡充值程序。
1. 创建 User 类,输入充值账户和金额:
package webadv.example.ch01;
public class User {
private String account;
//充值账户
private String money; //充值金额
public class RechargeApp {
private static ApplicationContext context;
public static void main(String[] args) { context = new ClassPathXmlApplicationContext("Beans.xml");
二、实验要求 1、 根据实验步骤中提出的要求,使用 Eclipse 编写相应的 Java 程序; 2、 根据实验步骤中提出的要求,使用 Eclipse 编译、运行自己所编写的 Java 程序; 3、 根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果; 4、 记录实验中遇到的各类问题并以及解决办法。
ChargeService app = (ChargeService) context.getBean("ChargeService");
app.read();
} }
4. 创建 Beas.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
Rod Johnson 在 2002 年编著的《Expert one on one J2EE design and development》 一书中,对 Java EE 系统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积 极寻求探索革新之道。以此书为指导思想,他编写了 interface21 框架,这是一个力 图冲破 Java EE 传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、 测试和部署的轻量级开发框架。Spring 框架即以 interface21 框架为基础,经过重新 设计,并不断丰富其内涵,于 2004 年 3 月 24 日,发布了 1.0 正式版。同年他又推 出了一部堪称经典的力作《Expert one-on-one J2EE Development without EJB》, 该书在 Java 世界掀起了轩然大波,不断改变着 Java 开发者程序设计和开发的思考 方式。在该书中,作者根据自己多年丰富的实践经验,对 EJB 的各种笨重臃肿的结 构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson 成为一个改变 Java 世界的大师级人物。 传统 J2EE 应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一, 导致 J2EE 的应用没有真正实现 Write Once 及 Run Anywhere 的承诺。Spring 作为
开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用 服务器的功能,如声明式事务、事务处理等。 Spring 致力于 J2EE 应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以 说 Spring 是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而, Spring 并不想取代那些已有的框架,而是与它们无缝地整合。
(三)Spring 由哪些模块组成?它们分别有些什么作用? Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring
模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如 图所示:
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个 或多个模块联合实现。每个模块的功能如下:1、核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要组件是 BeanFactory,它是工 厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依 赖性规范与实际的应用程序代码分开。
2、Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供 上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际 化、校验和调度功能。
3、Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向切面的编 程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任 何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了 事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事 务管理集成到应用程序中。
} public void setMoney(String money) {
this.money = money; }
}
2. 创建ChargeService类
package webadv.example.ch01;
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="User" class="webadv.example.ch01.User"/>
<bean id="ChargeService" class="webadv.example.ch01.ChargeService"> <constructor-arg ref="User"/>
public String getAccount() { return account;
} public void setAccount(String account) {
this.account = account; }
public String getMoney() { return money;
7、Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实 现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术, 其中包括 JSP、Velocity、Tiles、iText 和 POI。模型由 javabean 构成,存放 于 Map;视图是一个接口,负责显示模型;控制器表示逻辑代码,是 Controller 的实现。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于 不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重 用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境(Web 或 EJB)、独立应用程序、测试环境之间重用。
5、Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的 对象关系工具,其中包括 JDO、Hibernate 和 iBatisSQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
6、Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为 基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。