05_IoC的"零配置"

使用标签简化IoC配置:

1.使用标签来完成IoC,就必须有IoC标签的解析器 ,使用context:component-scan来扫描spring需要管理的bean
,base-package就告诉spring,去哪些包及其子包里去扫描bean,如果有多个包需要被扫描;只需要用逗号隔开多个包即可

<context:component-scan base-package="com.zoe.xxx" />

2.标注Bean的注解:@Component
默认情况,直接使用类的名字(首字母小写作为bean的名字)
如果要修改bean的名称;直接使用value属性来重新定义bean的名称

@Component("otherbean")
public class OtherBean {}

3.使用@Component的限制:
1),不能运用到静态工厂方法和实例工厂方法,但是可以使用到FactoryBean;
2),对于没有源代码的类(框架内部的预定义类),只能用XML配置,不能使用注解配置如DataSource;

4.bean组件版型标签
bean组件版型(本质没有区别,仅仅是清晰的表示适用于哪一层而已):

@Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action)、
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

5.指定bean的作用域:@Scope(“prototype”)

@Component("otherbean")
@scope("singleton")
public class OtherBean {}

6.初始化和销毁方法:@PostConstruct和@PreDestroy

@PostConstruct  //构造之后
public void init() {

相当于

<bean init-method="init" />

@PreDestroy  //销毁之前
  public void destory() {

相当于

<bean destroy-method="destory" />

使用XML来完成IOC和DI以及使用Annotation来完成IOC和DI的选择:

使用XML: 清晰明了,集中管理,配置太多了,文件臃肿.

使用注解: 清晰明了,文件轻巧,配置太分散了,不能统一做配置,又让硬编码回到代码中去了.

猜你喜欢

转载自blog.csdn.net/qq_33238150/article/details/82826869