Spring装配bean--01组件扫描和自动装配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring装配bean--01组件扫描和自动装配相关的知识,希望对你有一定的参考价值。
Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系
Spring提供了三种主要的装配机制:
- 在XML中进行显式配置
- 在Java中进行显式配置
- 隐式的bean发现机制和自动装配
1自动化装配bean
Spring从两个角度来实现自动化装配:
- 组件扫描(component scanning):Spring 会自动发现应用上下文中所创建的bean
- 自动装配(autowired):Spring自动满足bean之间的依赖@Autowired
开启组件扫描的2种方法:
- XML中配置<context:component-scan base-package="autowired" />
- java配置类中添加@ComponentScan
以下是代码解释
1. CD光盘类 @Component("cd1")//括号内给该bean设置ID,若不设置则默认为类名首字母小写即cD public class CD { private String title = "最炫民族风"; private String artist = "凤凰传奇"; public void play() { System.out.println("当前播放: " + title + " 演唱者: " + artist); } } 2 CDplayer播放器类 @Component("cdPlayer") public class CDplayer { @Autowired private CD cd; public void play() { cd.play(); } } 3 Java配置类开启组件扫描 @Configuration//声明该类是一个java配置类,不存在任何逻辑 @ComponentScan//在不声明basePackage的情况下,默认该类所在包下开启组件扫描 public class JavaConfig { } 4 XML配置文件开启组件扫描 <?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <context:component-scan base-package="autowired" /> </beans> 5 测试类 public class TestCase { @Test public void test01() { //java配置方法 开启组件扫描 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class); CD cd1 = (CD) context.getBean("cd1"); System.out.println(cd1); CDplayer cp1 = (CDplayer) context.getBean("cdPlayer"); cp1.play(); } @Test public void test02() { //XML配置方式 开启组件扫描 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); CD cd1 = (CD) context.getBean("cd1"); System.out.println(cd1); CDplayer cp1 = (CDplayer) context.getBean("cdPlayer"); cp1.play(); } }
6 console控制台结果
[email protected]
当前播放: 最炫民族风 演唱者: 凤凰传奇
以上是关于Spring装配bean--01组件扫描和自动装配的主要内容,如果未能解决你的问题,请参考以下文章