Spring容器笔记及理解

感觉看了半天文档和博客就总结出这么点东西,后面继续总结吧

Spring容器的初始化概述

spring容器简单来说就是用来封装beab对象的,本质是一个Bean工厂(BeanFcatory),通过ApplicationContext这个接口进行实例化,配置,封装beans;初始化spring容器其实就是创建一个ApplicationContext实例,一般是创建ApplicationContext的实现类,例如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext、AnnotationConfigApplicationContext这几个实例。通过Spring类图我们可以看到ApplicationContext其实是实现了BeanFactory这个接口的
在这里插入图片描述
通过Xml配置文件或者java注解配置来初始化BeanFcatory,将配置的一个个Bean封装进容器里,通过BeanFcatory去管理Bean之间的相互依赖关系。(这里详细的过程就不讲了,因为涉及的内容很多目前还没看)

基于XML配置或者Java注解配置

1.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="..." class="...">
        <!-- 在这里写 bean 的配置和相关引用 -->
    </bean>
    <bean id="..." class="...">
        <!-- 在这里写 bean 的配置和相关引用 -->
    </bean>
    <!-- 在这里配置更多的bean -->
</beans>

2.java注解配置
一般@Configuration和@Controller,@Service,@Repository等都可以注入对象,他们其实只是名字不相同其实作用是一样的,名字只是起标识作用,下边都是包含几个元注解以及@Component注解,这些都是作用于类级别上,而@Bean注解是作用于方法之上。

@Component
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyService();
    }


}
public class MyService {
    public MyService(){
        System.out.println("注入一个bean ===");
    }
    public void doStuff(){
        System.out.println("do do do do");
    }
}

public class Test {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        MyService bean = applicationContext.getBean(MyService.class);
        bean.doStuff();
    }
}

out:
在这里插入图片描述

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页