笔记:Spring注入方式

面向接口编程

。接口设计中,分清层次及调用关系,每层只向外(上一层)提供一层功能接口,各层间仅依赖接口而非实现类

。接口实现不影响各层的调用,这点在公共服务中尤为重要

。“面向接口编程”中的“接口”是用于隐藏具体实现和实现多态性的组件

什么是IOC

。IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器(spring容器)负责创建和维护

。DI(依赖注入)是其一种实现方式

。目的:创建对象并且组装对象之间的关系

2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么到底是“哪些方面的控制被反转了呢”,经过详细地分析和论证后,他得出了一个答案“获得依赖对象的过程被反转了”。控制被反转之后,获得依赖对象的过程由自身管理变为了由IOC容器主动注入。于是他给“控制反转"取了一个更合适的名字”依赖注入“。它的这个答案,实际上给出了实现IOC的方法:注入。* 所谓依赖注入,就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中。

  IOC容器注入过程

. 找IOC容器

. 容器返回对象

. 使用对象

用自己创建对象,通过配置来获取对象

  Bean容器初始化

. 两个基础包

  - org.springframework.beans

  - org.springframework.context

  - BeanFactory提供配置结构和基本功能,加载并初始化Bean

  - ApplicationContext保存了Bean对象并在Spring中被广泛使用

. 初始化ApplicationContext方式

  - 本地文件(指定到具体的磁盘目录)

  - Classpath (相对路径:相对于我们工程来说它的位置)

  - Web应用中 依赖servlet或Listener

. 文件系统:
  FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("F:/workspace/appcontext.xml");
. Classpath:
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml);
. Web应用
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
  <servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
  </servlet>

  spring注入

。Spring注入是指在启动spring容器加载bean配置的时候,完成对变量的赋值行为

ioc在加载的时候会扫描xml文件中的bean的相关配置,为这些bean进行实例化

。常用的两种注入方式

  - 设值注入


  - 构造注入


构造方法注入

field注入

@Controller
public class FooController {
  @Autowired
  //@Inject
  private FooService fooService;
   
  //简单的使用例子
  public List<Foo> listFoo() {
      return fooService.list();
  }
}

最常用的注入方式,原因很简单

1.注入方式非常简单:加入要注入的值,附上@Autowired,即可完成

2.使整体代码简洁明了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值