IOC/DI入门案例

目录

1、IOC入门案例

1.1  思路整理

1.2  入门案例代码实现

2、DI入门案例

2.1  思路整理

2.2  入门案例代码实现(基于上方的IOC代码)

1、IOC入门案例

1.1  思路整理
  • spring是使用容器管理Bean对象的,主要管理项目中所使用到的类对象,比如(service和dao)
  • 实用配置文件的方式将被管理的对象告知IOC容器
  • 被管理的对象交由IOC容器,想要获取IOC容器还是从容器中获取对象,都需要用到Spring框架提供的接口以及其中的方法。
  • 使用Spring需要再pom.xml中添加相应的依赖
1.2  入门案例代码实现

步骤1:创建Maven项目

步骤2:在pom.xml中添加依赖

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

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

步骤3:添加案例中的类

步骤4:添加Spring配置文件

resources下添加Spring配置文件applicationContext.xml,

步骤5:在配置文件中完成Bean的配置

<?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标签表示配置Bean
            id属性表示给Bean起名字
            class属性表示给Bean定义类型
        -->
        <bean id="bookDao" class="com.AT.dao.Impl.BookDaoImpl"></bean>
        <bean id="bookService" class="com.AT.service.impl.BookServiceImpl"></bean>
</beans>

步骤6:获取IOC容器,并从容器中获取对象

public class main {
    public static void main(String[] args) {
        //获取IOC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //在容器中获取Bean对象
        BookService bookService = (BookService) ctx.getBean("bookService");
    }
}

2、DI入门案例

2.1  思路整理
  • 想要实现DI(依赖注入),必须基于IOC管理Bean。
  • 不需要在类对象中保留new形式创建的对象。
  • 采用配置文件的形式进行Bean之间的内容描述
2.2  入门案例代码实现(基于上方的IOC代码)

步骤1:去除代码中的new

步骤2:为属性提供setter方法

public class BookServiceImpl implements BookService {
    private BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
}

步骤3:修改配置完成注入

<?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标签表示配置Bean
            id属性表示给Bean起名字
            class属性表示给Bean定义类型
        -->
        <bean id="bookDao" class="com.AT.dao.Impl.BookDaoImpl"></bean>
        <bean id="bookService" class="com.AT.service.impl.BookServiceImpl">
                <!--配置service与dao的关系-->
                <!--property标签表示配置当前Bean的属性
                        name属性表示配置哪一个具体的属性
                        ref属性表示参照哪一个Bean
                -->
                <property name="bookDao" ref="bookDao"></property>
        </bean>
</beans>

注意:配置中的两个bookDao的含义是不一样的

  • name="bookDao" 中的bookDao的作用是让Spring的IOC容器在获取到名称后,将首字母大写,前面加上set找对应的setBookDao()方法进行对象注入。
  • ref="bookDao"中的bookDao的作用是让Spring能在IOC容器中找到id为bookDao的Bean对象给bookService进行注入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值