spring框架学习4:bean注解配置
在上一篇中学习了如何使用spring来管理对象,但是再实际的开发中,再spring配置文件中配置bean元素是非常繁琐的,因此实际开发中使用注解来配置spring。具体操作如下:
在配置文件中,扫描实体类包:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--扫描实体类包--> <context:component-scan base-package="com.zs.entity"/> </beans>
使用注解配置对象,在类的头部使用注解@Component,
package com.zs.entity.impl; import com.zs.entity.Cpu; import com.zs.entity.Display; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * 创建e470电脑,电脑有显示器和Cpu */ @Component public class E470 { @Resource @Qualifier(value = "lgDisplay") private Display display; @Autowired private Cpu cpu; /*电脑有自己的工作的方法*/ public void work(){ display.show(); cpu.calc(); } /*生成get和set方法*/ public Display getDisplay() { return display; } public void setDisplay(Display display) { this.display = display; } public Cpu getCpu() { return cpu; } public void setCpu(Cpu cpu) { this.cpu = cpu; } }
引用对象类型头部也需要添加@Component,对象中的引用类型,当有多个实现类时,需要写出使用的实现类是哪儿一个,@Autowired是按照类型装配,@Resource默认按照名字装配,如果不成功,再按照类型装配,@Qualifier指定要装配对象的id,使用注解时,默认的对象的id为类名首字母小写。
然后测试:
import com.zs.entity.impl.E470; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { @Test public void test1() { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println("工厂类初始化成功"); E470 e470 = (E470) context.getBean("e470"); e470.work(); } }