spring分析一

案例代码如下:

pom文件:

<!--配置依赖-->
    <dependencies>

        <!--spring ioc 依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

    </dependencies>

dao持久层mapper:

/**
 * 客户dao接口
 */
public interface CustomerDao {

    /**
     * 保存客户操作
     */
    void saveCustomer();

}

/**
 * 客户DAO实现类
 */
public class CustomerDaoImpl implements CustomerDao {

    /**
     * 保存客户操作
     */
    @Override
    public void saveCustomer() {
        System.out.println("正在保存客户操作......");
    }

}

service业务层:

/**
 * 用户业务层接口
 */
public interface CustomerService {
    /**
     * 保存客户操作
     */
    void saveCustomer();
}

/**
 * 客户业务层实现类
 */
public class CustomerServiceImpl implements CustomerService {

    // 定义客户dao
    private CustomerDao customerDao;

    public void setCustomerDao(CustomerDao customerDao) {
        this.customerDao = customerDao;
    }

    /**
     * 保存客户操作
     */
    @Override
    public void saveCustomer() {
        customerDao.saveCustomer();
    }

}

controller表现层:

/**
 * 控制器
 */
public class CustomerController {

    public static void main(String[] args) {

         // 1.加载spring 配置文件,初始化创建ioc容器
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:bean.xml");

        // 2.从ioc容器获取service
        CustomerService customerService = (CustomerService)context.getBean("customerService");

        // 3.保存客户操作
        customerService.saveCustomer();

    }

}
  • 在实际项目应用中,我们都是通过ApplicationContext工厂接口,和它的实现类ClassPathXmlApplicationContext进行ioc容器的初始化。
ApplicationContext结构图如下:

在这里插入图片描述

  • spring框架中的工厂体系结构中,ApplicationContext并不是顶层接口。顶层接口是BeanFactory,它的完整体系结构类如下:
    在这里插入图片描述

在这里插入图片描述
工厂体系列表:

序号名称描述
1BeanFactory【重点】spring框架工厂体系结构的顶层接口,提供了基础规范:获取bean对象、bean的作用范围、bean的类型。
2ListableBeanFactoryBeanFactory接口中的getBean方法只能获取单个对象。ListableBeanFactory可以获取多个对象
3HierarchicalBeanFactory在一个spring应用中,支持有多个BeanFactory,并且可以设置为它们的父子关系。比如ssm框架整合中的两个ioc容器
4ApplicationContext【重点】项目中直接使用的工厂接口,它同时继承了ListableBeanFactory和HierarchicalBeanFactory接口
5ConfigurableApplicationContext支持更多系统配置的工厂接口。比如:conversionService、environment、systemProperties、systemEnvironment
6AbstractApplicationContext【重点】ApplicationContext工厂抽象类,提供了ioc容器初始化公共实现
7AbstractRefreshableApplicationContext在AbstractApplicationContext基础上,增加了ioc容器重建支持
8AbstractRefreshableConfigApplicationContext增加了配置文件解析处理
9AbstractXmlApplicationContext增加了配置文件解析处理
10ClassPathXmlApplicationContext【重点】项目中,直接使用的工厂实现类。从类的根路径下加载配置文件,创建spring ioc容器
11DefaultListableBeanFactory【重点】在spring框架工厂体系结构中,它是最强大的工厂类,也是我们最终创建的ioc容器,它内部持有了一系列Map集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值