没有Spring之前,代码原来是这样写的!
2011-11-19 13:45
309 查看
最近在看一位前辈的《Spring 开发指南》,才明白原来没有Spring之前,代码是这样写的。这对于我这个一开始学习Java EE编程就使用Spring的菜鸟级程序员来说,是很难理解Spring所带来的巨大便利的。以下是从这本电子书上几乎原封不动搬写下来的代码,作为自己学习Spring 原理的积累。
首先,该项目是由用Myeclipse工具编写的,看一下整个Java 项目的结构图:
Action接口:
UpperAction类:
ActionFactory类:
TestActionFactory类:
config.properties文件:
注:项目中要用的的commons-beanutils.jar 和 commons-logging.jar可以在http://www.findjar.com/index.x站点搜到
首先,该项目是由用Myeclipse工具编写的,看一下整个Java 项目的结构图:
Action接口:
/** * Action接口. */ public interface Action { String execute(String name); }
UpperAction类:
/** * UpperAction用来显示单词的大写形式. */ public class UpperAction implements Action{ private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String execute(String name){ return (this.getMessage() + name).toUpperCase(); } }LowerAction类:
/** * LowerAction用来显示单词测小写形式. */ public class LowerAction implements Action { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @Override public String execute(String name) { return (this.getMessage() + name).toLowerCase(); } }
ActionFactory类:
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Properties; import org.apache.commons.beanutils.BeanUtils; /** * ActionFactory Action生成类. */ public class ActionFactory { public static Action getAction(String actionName){ Properties pro = new Properties(); try { pro.load(new FileInputStream(new File("config.properties"))); String actionImplName = pro.getProperty(actionName); String actionMsg = pro.getProperty(actionName + "_msg"); Object obj = Class.forName(actionImplName).newInstance(); BeanUtils.setProperty(obj, "message", actionMsg); return (Action)obj; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e1) { e1.printStackTrace(); }catch (InvocationTargetException e) { e.printStackTrace(); } return null; } }
TestActionFactory类:
/** * ActionFactory测试类. */ public class TestActionFactory { public static void main(String[] args) { Action action = ActionFactory.getAction("TheAction"); System.out.println(action.execute("\tno!")); } }
config.properties文件:
TheAction=UpperAction TheAction_msg=Red Hat
注:项目中要用的的commons-beanutils.jar 和 commons-logging.jar可以在http://www.findjar.com/index.x站点搜到
相关文章推荐
- 原来Spring定时器可以这样注入service
- java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
- (原创)天惹!原来敲代码可以这样好玩!介绍一款AS的插件sexy editor
- 写个Cache类,其中加入一个字典,于是找到了这样一块代码,初步看了一下代码没有问题,于是Copy上
- Xcode6新建的工程没有Frameworks文件夹了?!原来是这样
- SSH中Spring的hibernateTemple中提供一个得到result数据集的代码,对于SSH初学者而言,这样能将baseDao的代码融合到其中
- 这样搞——保证你的代码没有try-catch
- LinearLayout实例代码Eclipse中执行没有报错,而在模拟器运行却强制停止……(找了大半天,原来是忘记width和height)
- 原来代码这样发的
- 项目启动报错 代码没有问题 org.springframework.beans.factory.Be
- LinearLayout实例代码Eclipse中执行没有报错,而在模拟器运行却强制停止……(找了大半天,原来是忘记width和height)
- STS(Spring Tool Suite)导入的工程的代码报错,提示获取不到需要的jar,原来是sts里读取maven路径没改
- LinearLayout实例代码Eclipse中执行没有报错,而在模拟器运行却强制停止……(找了大半天,原来是忘记width和height)
- @Aspect统一处理Web请求日志--Spring Boot--Java EE开发,原来可以这样!
- 原来可以这样插入代码,以前没发现。。。
- 没有关心过编写代码方式的好处,你是不是也是这样?
- spring配置文件ApplicationContext.xml文件里面代码没有提示功能
- jsp代码原来可这样写~~
- 原来Spring定时器可以这样注入service
- java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)