• com.jsj.factory====新闻发布系统(3)


    2020-05-12 天气:阴天

        今天我将介绍包com.jsj.factory里面的类是做什么的:

        DaoFactory.java

        作用:dao对象创建调用这个类里面的方法,通过传递参数,会自动生成所需的对象

    代码:

     1 package com.jsj.factory;
     2 
     3 import java.io.InputStream;
     4 import java.util.Properties;
     5 
     6 public class DaoFactory {
     7 
     8     private DaoFactory() {
     9     }
    10 
    11     private static Properties properties;
    12 
    13     static {
    14         InputStream inputStream = DaoFactory.class.getClassLoader().getResourceAsStream("dao.properties");
    15         properties = new Properties();
    16         try {
    17             properties.load(inputStream);
    18         } catch (Exception e) {
    19             throw new RuntimeException();
    20         }
    21     }
    22     //静态方法直接类调用,创建AdminDao类的对象
    23     public static Object getDao(String daoName){
    24         try {
    25             return Class.forName(properties.getProperty(daoName)).newInstance();
    26         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
    27             return null;
    28         }
    29     }
    30 
    31 
    DaoFactory.java

           ServiceFactory.java

         作用:创建相关的Service

    代码:

     1 package com.jsj.factory;
     2 
     3 import java.io.InputStream;
     4 import java.util.Properties;
     5 
     6 public class ServiceFactory {
     7     //构造函数用来初始化的
     8     private ServiceFactory(){
     9     }
    10 
    11     private static Properties properties;
    12 
    13     static {
    14         InputStream inputStream = DaoFactory.class.getClassLoader().getResourceAsStream("service.properties");
    15         properties = new Properties();
    16         try {
    17             properties.load(inputStream);
    18         } catch (Exception e) {
    19             throw new RuntimeException();
    20         }
    21     }
    22 
    23     //创建相关的Service的对象
    24     /*A a = (A)Class.forName("pacage.A").newInstance();
    25     这和你
    26     A a = new A();
    27     是一样的效果。 */
    28     public static Object getService(String serviceName){
    29         try {
    30             /*
    31             getProperty(String key)   在此属性列表中搜索具有指定键的属性。如果在此属性列表中找不到该键,
    32             则会检查默认属性列表及其默认值(递归)。如果未找到该属性,则该方法返回默认值参数。
    33              */
    34             return Class.forName(properties.getProperty(serviceName)).newInstance();
    35         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
    36             return null;
    37         }
    38     }
    39 
    ServiceFactory.java
    会当凌绝顶,一览众山小
  • 相关阅读:
    2.Redis常用命令
    1.CentOS安装Redis
    PAT 1127 ZigZagging on a Tree(30分)
    单链表上的基本操作
    求一个序列中的主元素
    PAT 1018 Public Bike Management(30分)
    PAT 1013 Battle Over Cities
    《算法笔记》题目分类
    PAT 1030 Travel Plan(30分)
    CentOS 安装 NET Core SDK 
  • 原文地址:https://www.cnblogs.com/quenvpengyou/p/12878621.html
Copyright © 2020-2023  润新知