加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

控制反转与依赖注入

发布时间:2020-12-14 05:32:25 所属栏目:百科 来源:网络整理
导读:传统的资源查找方式要求组件向容器发起请求来查找资源,作为回应,容器适时地返回资源。而应用了Ioc之后,则是容器主动地将资源推送到它所管理的组件里,组件所要做的仅仅是选择一种合适的方式来接受资源。这种行为被称为查找的被动形式。 Ioc(控制反转)是

传统的资源查找方式要求组件向容器发起请求来查找资源,作为回应,容器适时地返回资源。而应用了Ioc之后,则是容器主动地将资源推送到它所管理的组件里,组件所要做的仅仅是选择一种合适的方式来接受资源。这种行为被称为查找的被动形式。

Ioc(控制反转)是一种通用的设计原则,而DI(依赖注入)则是具体的设计模式,它体现了Ioc的设计原则。在DI模式里,容易以一些预先定义好的方式(例如通过setter方法)将匹配的资源注入到每个组件里。


Spring提供了两种类型的Ioc容器实现。基础的实现是Bean Factory,高级的实现是Application Context。与Bean Factory来说,Application Context在兼容基础特性的同时还提供了很多高级特性。所以,除非应用程序的资源受限制,例如,应用程序需要运行于apple或移动设备里,否则我强烈建议为每个应用程序都是用Application Context.

ApplicationContext是BeanFactory的子接口。

<bean></bean> 中的property的取值必须是有setter方法的属性,此属性可以不是类的实例变量。如:

public class DatePrefixGenerator {
private DateFormat formatter;
public void setPattern(String pattern){
this.formatter=new SimpleDateFormat(pattern);
}
}

<bean id="dateprefixgenerator" class="com.apress.springrecipes.hello.DatePrefixGenerator">
<property name="pattern" value="yyyyMMdd"></property>
</bean>


Spring2.5提供了一个强大的特性,这个特性称为组件扫描。它能够从classpath里自动扫描,侦测和实例化具有特定注解的组件。基本的注解是@component,它标识了一个受Spring管理的组件。其他特定的注解包括@Repository、@Service和@Controller,它们分别标识了在持久层、服务层和表现层的组件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读