Spring (一) :简单使用Spring
来源:互联网 发布:d3.js教程 编辑:程序博客网 时间:2024/06/03 12:28
当系统规模变大,业务逻辑复杂,此时使用面向对象编程拓展业务变得不易,因此我们找到其他方法来提高系统灵活性,Spring框架就是一个不错的选择。
那么它究竟如何实现的呢?
spring框架中一个组件化思想,它的目的是解耦和,实现每个组件只专注组件内部的事。通过定义接口,运行注入对象,强制将组件的构建和使用分开。这样就涉及spring使用时的一个重要概念——依赖注入。
什么是依赖注入:由容器维护程序之间的关系(程序中不需要使用 new 关键字,直接在容器中定义组件之间的关系)
下面以“Hello Spring”的代码为例,说明如何使用依赖注入。
创建web工程MySpring,添加需要的包,这里使用的是MyEclipse,可以通过该工具导包。点击项目,选择MyEclipse-->add Spring Capabilities-->Spring 3.0,这里并没有什么特殊的功能要求,选择 核心包(Core Libraries)就可以了,后面会和Struts集成,所以还选择了Web Libraries这个包。(也选择了将包Copy到lib目录下)这里是第一次使用,只能选择new一个配置文件,然后next-->finish即可,具体过程,见图,如下:
然后在src下就会创建applicationContext.xml文件,这个配置文件可以写多个,文件名可以任意取,在这里定义各个组件之间的关系,实现依赖注入。
Spring强调组件编程,这里的组件可以看做接口,由接口实现类来实现组件。首先定义一个Action接口,
public interface Action {public void execute();}再定义其实现类 HelloActionImpl,
public class HelloActionImpl implements Action{@Overridepublic void execute() {// TODO Auto-generated method stubSystem.out.println("hello spring!");}}新建一个TestAction是测试类,这里如果要输出"hello spring!",之前的做法是在这里的main方法中,直接newHelloActionImpl对象,然后调用execute方法,而在spring则是在applicationContext.xml进行定义。代码如下:
<bean id="helloAction" class="com.huaxin.spring.HelloActionImpl">
一个bean节点,代表就是action类的实例,ID属性和class,id代表对象名称,class里面填写实现类的完整路径,整个bean节点的定义就等价于
Action helloAction=new com.huaxin.spring.HelloActionImpl() ;在容器中定义后,一旦解析配置文件,就会根据id设置对象名,class设置实例,去指定对象,如何将实例返回测试类中呢?
在测试类TestAction文件中,代码如下:
public static void main(String[] args) {// 读取配置文件(此时会将bean节点实例装载至内存,可以识别ID对应的实例)ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");//根据ID返回容器中的bean节点(类实例)Action action=(Action)context.getBean("helloAction");action.execute();}这里ApplicationContext 是一个接口,在构造方法中可以指定配置文件的路径,然后通过getBean获取配置文件中的bean节点,运行后即可输出"hello spring!"。
这里只是简单使用spring,但似乎并为给程序带来便利。那么假设现在有新的业务类需要实现,不仅要打招呼,还要有笑脸,将其定义为NewHelloActionImpl,同样实现Action接口。它的execute方法中的输出语句为:
System.out.println("(*^__^*) 嘻嘻…… HelloAction!");如果我们要替换旧的业务,使用新的业务,就需要修改Java代码,new新的对象。那么问题来了,如果在一个庞大的系统中,旧的业务使用有很多处,那么就要多次修改,但是使用spring之后就可以避免这种情况,这里Java代码不需要修改,只要修改配置文件bean节点对应的class即可,修改代码如下
<span style="font-size:18px;"><bean id="helloAction" class="com.huaxin.spring.NewHelloActionImpl"></span>这样就可以了,十分方便。可见使用spring的扩展性更高。
- Spring (一) :简单使用Spring
- Spring笔记(一)---myeclipse2014配置spring以及简单使用
- Spring的简单使用
- Spring定时器简单使用
- spring jdbcTemplate简单使用
- spring rmi 简单使用
- Spring AOP 简单使用
- Spring PropertyPlaceholderConfigurer 简单使用
- spring cache简单使用
- spring容器简单使用
- 简单的使用spring
- 简单使用spring
- spring-retry简单使用
- spring cloud 简单使用
- spring mongoTemplate简单使用
- Spring-boot 简单使用
- Spring深入使用(一)
- Spring AOP 一、AOP的概念与简单使用
- 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素
- 我的学习之旅(35)sched.c
- project Euler 13
- Find Peak Element
- 机器学习与智能优化 之 学习也民主
- Spring (一) :简单使用Spring
- NYOJ 题目290 动物统计加强版(字典树)
- TK 例子《1》
- 关于IPv6物联网技术的些许总结
- ARM子函数定义中的参数放入寄存器的规则
- 1079. Total Sales of Supply Chain (25)
- 代码是不是写得越 smart 越好
- C51回顾二
- 1.git安装和使用