迅速掌握Spring框架
来源:互联网 发布:怎样关闭windows防火墙 编辑:程序博客网 时间:2024/06/02 11:43
迅速掌握Spring框架
Spring框架是SSH三剑客当中比较难理解的,然而它的意义对于软件来说是一场革命,完全颠覆了软件开发的流程。例如控制反转、依赖倒置这些高深的概念让我们无比膜拜,又让我们觉得离自己的日常使用是那么遥远,这也导致了很多公司会很顺理成章的去用Struts和Hibernate,因为这二者会提升公司产品的效率。然而关于软件开发,如何让开发变得简单,让组件真正实现解耦却很少被公司考虑或者关心。然而现在软件开发已经不是以前的作坊式的,不是单兵作战就可以完成的,现在讲究的是集团作战,多开发小组协同合作。
本文将通过一个最简单的例子让你能够掌握Spring框架,首先需要准备两个外部jar包:
1. spring.jar
2. common-logging-1.1.1.jar
新建Java project,命名为Demo,在Demo工程下新建一个包,不能使用default包,必须按照规范命名包,例如com.discover.test,否则后续spring找不到对应的bean。
在com.discover.test下新增Action接口,里面定义execute方法。
package com.discover.test;/** * @author Administrator * */public interface Action { public String execute(String s);}
在com.discover.test下新增UpperActionImpl实现Action接口:
package com.discover.test;/** * @author Administrator * */public class UpperActionImpl implements Action { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } /* (non-Javadoc) * @see Action#execute(java.lang.String) */ @Override public String execute(String s) { // TODO Auto-generated method stub return s+","+message.toUpperCase(); }}
新增一个bean.xml配置文件放到工程目录下,即和.project和.classpath放在同一级目录,否则bean文件访问不到。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"><beans> <description></description> <bean id="TestAction" class="com.discover.test.UpperActionImpl"> <property name="message"> <value>happy birthday!</value> </property> </bean></beans>
最后写一个测试类来测试下我们刚才所做的工作实现什么样的效果。
package com.discover.test;import org.apache.commons.logging.Log;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;/** * @author Administrator * */public class Test { /** * @param args */ public static void main(String[] args) { try { testSpring(); } catch (Exception e) { System.out.println(e.toString()); } } public static void testSpring() { ApplicationContext context = new FileSystemXmlApplicationContext("bean.xml"); Action action = (Action)context.getBean("TestAction"); System.out.println(action.execute("jack")); }}
执行Test.java文件,在控制台可以看到:jack,HAPPY BIRTHDAY!
在bean.xml中配置的是小写的happy birthday,UpperActionImpl实现类的功能就是打印出输入的参数和在bean.xml配置的字符串,并以大写的形式打印。
最后看下工程目录:
不知道各位看到此处诧异Spring的强大没,也许大家都听说过依赖注入和控制反转,每次看了这些高大上的名词的解释后似懂非懂,过后再看到这些名词或者被别人问到,又不能说出它们的作用,那是因为如果没有实际的操作,认真的思考,是无法理解Spring的强大。依赖注入在我看来就是在运行时为组件配置所需资源,将原本需要在代码中指定的东西放到配置中,从而降低耦合。组件间的依赖不再是类或者接口,可以将类或者接口能提供的资源包装成服务放到bean文件中,通过bean文件对外暴露,这样不仅隐藏了内部实现,也降低了组件间的耦合性,提升代码的可重用性。
说到这里,也许有的人会想到工厂模式,当初会因为使用工厂模式一定程度上解决了代码的耦合性,提升了开发效率,然而有新的业务时除了写一种新的实现类外还要修改工厂类,修改工厂类是我们不希望,因为这并没有实现真正意义上的解耦。因此Spring的理念确实非常新颖,现在再回过头来理解控制反转,即获得对象不在代码中实现,放到配置中实现;依赖注入,即将依赖的资源不在代码中获取,推迟到运行的时候,从配置中注入。
- 迅速掌握Spring框架
- 迅速掌握Unix编程
- 迅速掌握PHP导出Word文档原理
- 如何学才能迅速掌握C++?
- SSH(struts+spring+hibernate)迅速开发--第二章 SSH框架搭建(1)
- SSH(struts+spring+hibernate)迅速开发--第二章 SSH框架搭建(2)
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(1)
- SSH(struts+spring+hibernate)迅速开发--附录1 Struts校验框架(2)
- 【spring框架】AOP的XML实现(必须掌握)
- Linux记事本最常用的命令,迅速掌握Linux
- 通过与Java的比较,迅速掌握Groovy
- 教你如何在短时间迅速掌握海量SAT词汇
- 通过与Java的比较,迅速掌握Groovy
- 迅速教你掌握Web运维技能
- Spring官网迅速下载方法
- PHP框架完全掌握
- 快速掌握框架
- 初学Java三大框架集成需要掌握的基本配置[Spring,MyBatis,Struts]
- hduoj 5214 Movie 暴力
- php excel导入
- android singleline ...显示不全
- hdu 1789 Doing Homework again
- PPTP穿透NAT之深入分析
- 迅速掌握Spring框架
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- 内联函数(To be update)
- 浅谈WebService
- Spring和SpringMVC的区别
- 【codechef】Clash of Clans
- QT4.8下 MD5的编码
- HDU 5090 Game with Pearls
- Struts2学习