前面的用户注册的例子中,我们已经使用 Spring 定义了一个用户持久化类:<bean id="userDao" class="com.dev.spring.simple.MemoryUserDao"/>这是一个最简单的 Bean 定义。它类似于调用了语句:MemoryUserDao userDao = new MemoryUserDao()。id属性必须是一个有效的 XML ID,这意味着它在整个 XML 文档中必须唯一。它是一个 Bean 的“终身代号(9527)”。
使用 IoC 容器,用户注册类UserRegister不用主动创建UserDao实现类的实例。由 IoC 容器主动创建UserDao实现类的实例,并注入到用户注册类中。我们下面将使用 Spring 提供的 IoC 容器来管理我们的用户注册类。用户注册类UserRegister的部分代码如下:public class UserRegister { private UserDao userDao = null;
我们使用一个工厂类来实现userDao对象的创建,这样客户端只要知道这一个工厂类就可以了,不用依赖任何具体的UserDao 实现。创建userDao对象的工厂类UserDaoFactory代码如下:public class UserDaoFactory { public static UserDao createUserDao(){ return new MemoryUserDao();
在介绍面向接口编程前,我们先来了解一下 IoC的基本原理,所谓 IoC,对于 Spring 框架来说,就是由 Spring 来负责控制对象的生命周期和对象间的关系。在一个对象中,如果要使用另外的对象,就必须得到它(自己 new 一个,或者从 JNDI 中查询一个),使用完之后还要将对象销毁(比如 Connection 等)。那么 IoC 是如何做的呢?
New in Django 1.7.系统检查框架是为了验证Django项目的一系列静态检查。它可以检测到普遍的问题,并且提供如何修复的提示。这个框架可以被扩展,所以你可以轻易地添加你自己的检查。检查可以由check命令显式触发。检查会在大多数命令之前隐式触发,包括runserver 和 migrate。由于性能因素,检查不作为在部署中使用的WSGI栈的一部分运行。