首页 > 其他 > 详细

框架 小编搭建

时间:2014-05-12 10:40:53      阅读:433      评论:0      收藏:0      [点我收藏+]

其实所谓的框架就是通过一些配置文件来将需要运行的模块以及类、方法在软件启动的时候自动运行。如果将需要运行类以及模块配置在文件中那么便于后期的一个维护。

 

1.创建一个配置文件如下

 1 class=Service.UserService

2 method=autoRun

3 value=唐僧,孙悟空  

2.    创建两个实现接口的服务类
bubuko.com,布布扣
 1  2 UserService.java
 3 public class UserService implements Service{
 4    // 提供自动运行的方法
 5     public void autoRun(String names){
 6         // 使用,号切割用户列表
 7         String [] ns = names.split(",");
 8         // 遍历
 9         for(String name:ns){
10             System.out.println("姓名: "+name);
11         }
12     } 
13 }
14 StartService.java
15 public class StartService implements Service {
16    // 提供自动运行的方法
17     public void autoRun(String names){
18         // 使用,号切割用户列表
19         String [] ns = names.split(",");
20         // 遍历
21         for(String name:ns){
22             System.out.println(name);
23         }
24     } 
25 }
26 以上的两个类拥有共同的方法因此可以抽取为接口
27 Service.java
28 public interface Service {
29     // 提供自动运行的方法
30     public abstract void autoRun(String names);
31 }
bubuko.com,布布扣

3.直接编写一个Main.java进行逻辑处理

bubuko.com,布布扣
 1     public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
 2         Properties properties=new Properties();
 3         properties.load(new BufferedReader(new FileReader(new File("configure.ini"))));
 4         String str_class=(String) properties.getProperty("class");
 5         String str_method=(String)properties.getProperty("method");
 6         String str_value=(String)properties.getProperty("value");
 7         System.out.println(str_class);
 8         System.out.println(str_method);
 9         System.out.println(str_value);
10         for(Map.Entry e:properties.entrySet())
11         {
12             System.out.println(e.getKey()+"   "+e.getValue());
13         }
14         Class clazz=Class.forName(str_class);
15         Constructor con = clazz.getConstructor();
16         Service service=(Service) con.newInstance();
17         Method method=clazz.getMethod(str_method,String.class);
18         service.autoRun(str_value);
19     }
bubuko.com,布布扣

参考人家的事例中文解释

bubuko.com,布布扣
 1 public static void main(String[] args) throws Exception{
 2       // 1. 获取配置信息
 3       Properties ps = new Properties();
 4       // 2. 装载文件数据
 5       ps.load(new FileInputStream(new File("jnb.ini")));
 6       // 3. 获取数据
 7       String str_clazz = ps.getProperty("run");
 8       String str_method = ps.getProperty("me");
 9       String str_value = ps.getProperty("value");
10       // 4. 反射获取Class对象
11       Class clazz = Class.forName(str_clazz);
12       // 5. 创建对象
13       Constructor con = clazz.getConstructor(null);
14       Service service = (Service)con.newInstance(null);
15       // 6. 调用相关的方法
16       Method method = clazz.getMethod(str_method, String.class);
17       method.invoke(service, str_value);
18 }
bubuko.com,布布扣

 

这样的话就基本的实现了一个框架的模拟,大家以后就可以同配置文件的形式修改程序运行的服务类了。

框架 小编搭建,布布扣,bubuko.com

框架 小编搭建

原文:http://www.cnblogs.com/friends-wf/p/3720521.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!