zoukankan      html  css  js  c++  java
  • 11_注解03_用注解方式决定接口的实现类

    【工程截图】

    【Document.java】

    package com.HigginCui.document.annotation;
    
    public interface Document {
        public void readDocument();
        public void writeDocument();
    }

    【ExcelDocument.java】

    package com.HigginCui.document.annotation;
    
    import org.springframework.stereotype.Component;
    
    @Component("excelDocument")
    public class ExcelDocument implements Document{
        @Override
        public void readDocument() {
            System.out.println("Excel read....");
        }
        @Override
        public void writeDocument() {
            System.out.println("Excel write....");
        }
    }

    【PdfDocument.java】

    package com.HigginCui.document.annotation;
    
    import org.springframework.stereotype.Component;
    
    @Component("pdfDocument")
    public class PdfDocument implements Document{
        @Override
        public void readDocument() {
            System.out.println("Pdf read....");
        }
        @Override
        public void writeDocument() {
            System.out.println("Pdf write....");
        }
    }

    【WordDocument.java】

    package com.HigginCui.document.annotation;
    
    import org.springframework.stereotype.Component;
    
    @Component("wordDocument")
    public class WordDocument implements Document{
        @Override
        public void readDocument() {
            System.out.println("Word read....");
        }
        @Override
        public void writeDocument() {
            System.out.println("Word write....");
        }
    }

    【DocumentManager.java】

    package com.HigginCui.document.annotation;
    
    import javax.annotation.Resource;
    
    import org.springframework.stereotype.Component;
    
    @Component("documentManager")
    public class DocumentManager {
    
        @Resource(name="excelDocument")
        private Document document;
        
        public void read(){
            this.document.readDocument();
        }
        public void write(){
            this.document.writeDocument();
        }
    }

    【applicationContext.xml】

    <?xml version= "1.0" encoding ="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:context="http://www.springframework.org/schema/context"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    
        <!-- 把一个类放入到Spring容器中,该类就是一个component,此时不需要声明对应的bean -->
        <context:component-scan base-package="com.HigginCui.document.annotation"></context:component-scan>
    </beans>

    【testDocument.java】

    package com.HigginCui.test;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.HigginCui.document.annotation.DocumentManager;
    
    
    public class testDocument {
        @Test
        public void test(){
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
            DocumentManager documentManager=(DocumentManager) context.getBean("documentManager");
            documentManager.write();
            documentManager.read();
        }
    }

    【运行结果】

    Excel write....
    Excel read....
  • 相关阅读:
    163源
    nginx限制某个IP同一时间段的访问次数
    CentOS_6.5安装Nginx+PHP+MySQL
    php安装,mysql安装
    linux卸载php
    nginx下php频繁卡死502
    python与selenium自动化基础-xlrd读取数据,Excel生成报告
    python与selenium自动化基础-测试多账户
    python与selenium自动化基础-测试用例错误处理及生成log
    python与selenium自动化基础-测试用例数据数据分离
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5574580.html
Copyright © 2011-2022 走看看