思路分析:

  • 管理什么?(Service与Dao)
  • 如何让IoC知道被管理的对象?(配置文件)
  • 被管理的对象交给IOC容器,如何获取到IoC容器?(接口)
  • IOC容器得到后,如何从容器中获取bean?(接口方法)
  • 使用Spring导入哪些坐标?(pom.xml)

实现步骤:

  • 导入Spring坐标
  • 定义Spring管理的类(接口)
  • 创建Spring配置文件,配置对应类作为Spring管理的bean对象
  • 初始化IOC容器(Spring核心容器/Spring容器),通过容器获取bean对象
//导入Spring坐标
<dependency>
  <!--导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
//定义Spring管理的类(接口)
package com.kuangziyao.dao;

public interface BookDao {
    public void save();
}



package com.kuangziyao.dao.impl;

import com.kuangziyao.dao.BookDao;

public class BookServiceImpl implements BookDao {

    @Override
    public void save() {
        System.out.println("book dao save ...");
    }
}


package com.kuangziyao.service;

public interface BookService {
    public void save();
}


package com.kuangziyao.service.impl;

import com.kuangziyao.dao.BookDao;
import com.kuangziyao.service.BookService;
import org.springframework.stereotype.Service;

@Service
public class BookServiceImpl implements BookService {
   private BookDao bookDao = new BookDaoImpl();
    @Override
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}
//创建Spring配置文件,配置对应类作为Spring管理的bean对象
//定义applicationContext.xml配置文件并配置BookServiceImpl
<?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">
    <!--1.导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->

    <!--2.配置bean-->
    <!--bean标签标示配置bean
    id属性标示给bean起名字
    class属性表示给bean定义类型-->

    <bean id="bookDao" class="com.kuangziyao.dao.impl.BookServiceImpl"/>
    <bean id="bookService" class="com.kuangziyao.service.impl.BookServiceImpl">  </bean>
</beans>

//注意事项:bean定义时id属性在同一个上下文中(IOC容器中)不能重复
//初始化IOC容器(Spring核心容器/Spring容器),通过容器获取bean对象
package com.kuangziyao;

import com.kuangziyao.dao.BookDao;
import com.kuangziyao.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App2 {
    public static void main(String[] args) {
        // 创建IoC容器对象,加载spring核心配置文件
           ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        //从IOC容器中获取Bean对象(BookService对象)
  BookService bookService = (BookService) ctx.getBean("bookService");
        //调用Bean对象(BookService对象)的方法
        bookService.save();
    }

发表回复

您的电子邮箱地址不会被公开。