Spring使用注解的方式来实现简单的打印机功能,附完整代码,菜鸟教程

Posted 名字真的很急用

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring使用注解的方式来实现简单的打印机功能,附完整代码,菜鸟教程相关的知识,希望对你有一定的参考价值。

上一篇写的是正常情况下的Spring实现打印机的功能,必须在applicationcontext.xml中实现依赖注入,还要在print 中实现set,get方法,比较麻烦。
为此,老师又讲了实现注解的简单方法。代码如下。

在这里插入图片描述
下面是各个包下对应的类和接口的代码。
这是第一个包下面的对应类和接口。

package com.lnk;
import org.springframework.stereotype.Service;

@Service("myback")

@Service  //实例化的对象名 默认类名首字母小写
public class Back implements Lnk {
    @Override
    public String getColor() {
        return "黑白";
    }
}

**这是lnk下的包对应的类和接口**
package com.lnk;

import org.springframework.stereotype.Service;

@Service  //实例化的对象名 默认类名首字母小写
public class Color implements Lnk {
    @Override
    public String getColor() {
        return "彩色";
    }
}
package lnk;

public interface Lnk {
    public String getColor();
}

大家对对应错了,看图对应即可。


package com.page;

import org.springframework.stereotype.Service;

@Service  //实例化的对象名 默认类名首字母小写
public class A4 implements Page {
    @Override
    public String getSize() {
        return "a4";
    }
}

package com.page;

import org.springframework.stereotype.Service;

@Service  //实例化的对象名 默认类名首字母小写
public class B5 implements Page {
    @Override
    public String getSize() {
        return "b5";
    }
}
package page;

public interface Page {
    public String getSize();
}

print包下的代码二种注解方式


package com.print;

import com.lnk.Lnk;
import com.page.Page;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;


打印机
开闭原则::对扩展开放  闭:对修改原代码关闭
 
@Service  //实例化的对象名 默认类名首字母小写
public class Print {
    @Resource(name = "a4")
    private Page page;
    @Resource(name = "color")
    private Lnk lnk;
    //打印方法
    public void print(){
        System.out.println("正在使用"+this.lnk.getColor()+"颜色墨盒,在"+this.page.getSize()+"纸张上打印");
    }

}



package com.print;

import com.lnk.Lnk;
import com.page.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

打印机
开闭原则::对扩展开放  闭:对修改原代码关闭
 
@Service  //实例化的对象名 默认类名首字母小写
public class Print2 {
    @Autowired
    @Qualifier(value = "b5")
    private Page page;
    @Autowired
    @Qualifier(value = "back")
    private Lnk lnk;
    //打印方法
    public void print(){
        System.out.println("正在使用"+this.lnk.getColor()+"颜色墨盒,在"+this.page.getSize()+"纸张上打印");
    }

}

最后是applicationcontext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans">

<!-- 扫描包中注解标注的类 -->


<context:component-scan base-package="com.lnk,com.page,com.print"/>

</beans>

最后是我们的test类。

package com;


import com.print.Print;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public void helloSpring() {
        // 通过ClassPathXmlApplicationContext实例化Spring的上下文
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        // 通过ApplicationContext的getBean()方法,根据id来获取bean的实例
        Print p = (Print) context.getBean("print");
        p.print();
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.helloSpring();
    }
}

以上是关于Spring使用注解的方式来实现简单的打印机功能,附完整代码,菜鸟教程的主要内容,如果未能解决你的问题,请参考以下文章

Spring Aop实现方式(注解和Xml)

从头认识Spring-3.7 简单的AOP日志实现(注解版)-增加检查订单功能

使用Spring的注解方式实现AOP

使用Spring的注解方式实现AOP

使用Spring的注解方式实现AOP

Spring的注解方式实现AOP