天行健君子当自强不惜。。。加油。。。
Spring 最成功的是其题出的理念,而不是技术本身。
它所依赖两个核心:
a. 控制反转(Inversion of Control)IoC
Inversion( ɪnˈvɜː.ʒən)相反,倒置,颠倒
b. 面向切面编程(Aspect Oriented Programming)AOP
aspect (æs.pekt) 方面,层面。
oriented ( -ɔː.ri.en.tɪd) 以...为目标,以...为导向。
1. IoC 容器简介
IoC是 Spring 的核心,spring 是一种基于ioc容器编程的框架。
spring 把每一个需要管理的对象称为spring bean,spring管理这些bean 被我们
称之为spring ioc 容器。ioc容器具备两个基本功能:
a . 通过描述管理(发布,获取)bean
b . 通过描述完成 bean之间的依赖关系
在 Spring定义中,它要求所有IoC容器都要实现BeanFactory接口,它是一个顶级接口。代码如下
package org.springframework.beans.factory;
public interface BeanFactory {
/**
* 用来引用一个实例,或把它和工厂产生的Bean区分开,就是说,如果一个FactoryBean的名字为a,那么,&a会得到那个Factory
*/
String FACTORY_BEAN_PREFIX = "&";
/*
* 四个不同形式的getBean方法,获取实例
*/
Object getBean(String name) throws BeansException;
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
<T> T getBean(Class<T> requiredType) throws BeansException;
Object getBean(String name, Object... args) throws BeansException;
boolean containsBean(String name); // 是否存在
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;// 是否为单实例
boolean isPrototype(String name) throws NoSuchBeanDefinitionException;// 是否为