Spring的注解作用总结1

1.1 创建可被发现的bean
 

CompactDisc的具体内容并不重要, 重要的是将其定义为一个了接口,并且定义了一个播放的方法

 

带有@Component注解的实现类SgtPeppers,SgtPeppers类上使用了@Component注解。 这个简单的注解表明该类会作为组件类, 并告知Spring要为这个类创建bean(啥是bean?我理解是:简单笼统的说就是一个类,一个可复用的类,javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java类可以通过自身机制发现和操作这些JavaBean 属性。比如实体类

不过, 组件扫描默认是不启用的。 我们还需要显式配置一下Spring, 从而命令它去寻找带有@Component注解的类, 并为其创建bean。

@ComponentScan注解启用了组件扫描

如果没有其他配置的话, @ComponentScan默认会扫描与配置类相同的包。 因为CDPlayerConfig类位于soundsystem包中, 因此Spring将会扫描这个包以及这个包下的所有子包, 查找带有@Component注解的类。 这样的话, 就能发现CompactDisc, 并且会在Spring中自动为其创建一个bean

使用XML来启用组件扫描的话, 那么可以使用Spring context命名空间
的<context:component-scan>元素


<context:component-scan>元素会有与@ComponentScan注解相对应的属性和子元素
 

创建一个简单的JUnit测试, 让它创建Spring上下文, 并判断CompactDisc是不是真的创建出来了。

注解@ContextConfiguration会告诉它需要在CDPlayerConfig中加载配置,因为CDPlayerConfig类中包含了@ComponentScan, 因此最终的应用上下文中应该包含CompactDisc bean。
为了证明这一点, 在测试代码中有一个CompactDisc类型的属性, 并且这个属性带
@Autowired注解, 以便于将CompactDisc bean注入到测试代码之中
 

做个小总结:把@Component当做是一盏灯,@ComponentScan就是总开关,他会打开房间里(包以及这个包下的所有子包)所有你安了灯泡地方的灯,照亮你房间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值