Spring入门 IOC/DI基础案例

目录

前言 

一、创建set方法让外部进行方法提供

二、配置文件

三、实际运行


 

 

前言 

书接上回:Spring入门-ioc基础案例代码_年关的博客-CSDN博客

我们通过Spring方式进行了对象创建,但是如果对象本身所具有的某个属性就是对象,同样需要new,这样的话我们该怎么做呢?

Spring为我们提供了解决办法,在<bean>标签里提供了<property>标签来对类属性进行注入

一、创建set方法让外部进行方法提供

 1、创建接口

public interface BookService {

    String all();
    void setBookDao(BookDao bookDao);
}

2、实现接口

        这里的bookDao是另一个对象,使用使用set方法,以供Spring框架在创建对象的自动调用为BookDao赋值


public class BookServiceImpl implements BookService{
//    BookDao bookDao=new BookDaoImpl();
//    删除业务层中使用new创建对象,使用set提供方法
    private BookDao bookDao;

    @Override
    public String all() {
        System.out.println("BookServiceImpl");
        bookDao.select();
        return null;
    }

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

    }
}

二、配置文件

<?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">
<!--    .导入serping坐标 spring-context 5.2.10 R-->
<!--    2,配置bean-->
<!--    bean标签配置bean-->
<!--    id表示给bean起名字-->
<!--    class属性表示给bean起名字-->
    <bean class="com.demo2.Dao.BookDaoImpl" id="bookDaobean"></bean>
    <bean class="com.demo2.service.BookServiceImpl" id="bookServicebean">
<!--        配置service与dao的关系-->
<!--        property表示配置当前bean的属性 name表示bookService内的属性对象,ref表示对象的来源,来自其他的bean-->
        <property name="bookDao" ref="bookDaobean"/>
    </bean>

</beans>

 在这里,我们先对bookdao行配置,然后再对bookservice内的bookdao对象尽行绑定,在bookServicebean被调用的时候,会自动生成bookDao进行注入

三、实际运行

 源代码:

package com.demo2;

import com.demo2.Dao.BookDao;
import com.demo2.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class app {
    public static void main(String[] args) {
//        获取ioc容器
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContest.xml");
        //获取bean
        BookService bookService = (BookService) ctx.getBean("bookServicebean");
        bookService.all();
    }
}

运行结果:

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值