Spring学习

    • IOC 控制反转——>程序不依赖具体实现,而是依赖于抽象接口–林信良

      • 例子

        • 实现文件读取,现在读取XML,以后不一定

          • 传统的实现
            - public class OldXmlReader { public void reader(){ System.out.println("读取XML");}}

            • 执行
              • OldXmlReader oxr = new OldXmlReader(); oxr.reader();
          • 通过set注入实现

            • 定义读取器规范
              • public interface Reader {public void Read();}
            • 其中一种实现
              • public class XmlReader implements Reader{@Override public void Read() {System.out.println("XML");}}
            • 另外一种实现
              • public class TxtReader implements Reader{@Override public void Read() {System.out.println("读取TXT");}}
            • service类
              • public class ReaderService {private Reader reader;public void setReader(Reader reader) {this.reader = reader;}public void read(){reader.Read();}}
              • 执行
                • ReaderService rs = new ReaderService();rs.setReader(new XmlReader());rs.read();
                  • 通过配置文件来实现注入
              • public class ReaderFactory {private Properties prop;private static ReaderFactory readerFactory;private ReaderService rs;private Reader read;ReaderFactory() throws Exception{InputStream in = ReaderFactory.class.getClassLoader().getResourceAsStream("properties/read.properties");prop = new Properties();//加载配置文件 prop.load(in);String readerService = prop.getProperty("ReaderService.java");String reader = prop.getProperty("Reader.java");//根据反射获取类的实例rs = (ReaderService) Class.forName(readerService).newInstance();read = (Reader) Class.forName(reader).newInstance();rs.setReader(read);}public static ReaderFactory getNewInstance() throws Exception{if(null == readerFactory ){readerFactory = new ReaderFactory();}return readerFactory;}public ReaderService getRs() {return rs;}public Reader getRead() {return read;}}
              • 具体的配置文件
              • ReaderService.java=com.want.spring.one.partOne.ReaderService Reader.java=com.want.spring.one.partOne.TxtReader
              • 执行
                • ReaderFactory.getNewInstance().getRs().read();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值