浅谈Spring中的IOC容器

一、IOC、DI基本概念

IoC(Inversion of Control)控制反转指的是把对象的创建,初始化,销毁等工作交给容器来做。由容器控制对象的生命周期(传统方式中是由我们程序员主动创建对象、初始化、销毁。将这系列的操作交给容器的过程即为反转)。IOC更多的描述了对象本身,而没有涉及到对象与对象之间依赖关系的处理,于是后续有了依赖注入的概念。依赖注入指的是组件之间依赖关系由容器在运行期决定。程序运行中,组件依赖的其他资源将会由容器动态注入到组件中。现如今我们提到IOC和DI时,大部分场景下都指的是同一个东西。IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序

二、Spring容器创建Bean对象的方式

1、默认调用类的无参构造函数创建对象

2、利用静态工厂方法创建对象

3、利用实例工厂方法创建对象

依赖注入方式(给属性赋值)

1、调用类的构造器注入

2、调用类的setter方法注入

三、Spring容器创建对象的时机

1、默认情况下,Spring容器启动的时候(例如:ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"))会调用类的无参数构造函数创建对象。

2、当注册bean对象的时候,指定了lazy-init="true"属性的时候,在获取对象的时候(例如:调用getBean方法)初始化对象。lazy-init属性值为default、false都为延迟初始化。

四、Spring容器中Bean的作用域

五、Spring容器中Bean的生命周期

六、Spring中配置Bean的几种方式 

1、基于xml的配置

<bean id="user" class="com.demo.mvc.model.User" />
View Code

2、基于注解的配置

@Controller
@RequestMapping("/Hello")
public class HelloController {
    @RequestMapping("/index")
    @ResponseBody
    public String index() {
        return "Hello,index!";
    }
}
View Code

几种常用的注册bean的注解:

@Component:标注一个普通的Spring Bean类(不好归类为以下三种时,常使用该注解)

@Controller:标注一个控制器类

@Service:标注一个业务逻辑类

@Repository:标注一个DAO类

3、基于Java类配置

@Configuration
public class ApplicationConfig {
    @Bean("user")
    public User getUser(){
        return new User();
    }
}
View Code

使用@Configuration注解配置ApplicationConfig类为一个Spring配置类,使用@Bean注解向Spring容器中注册Bean对象。

参考博文:http://www.cnblogs.com/zrtqsk/p/3735273.html

原文地址:https://www.cnblogs.com/Jabben_Yi/p/9913941.html