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使用注解的方式来实现简单的打印机功能,附完整代码,菜鸟教程的主要内容,如果未能解决你的问题,请参考以下文章