springbean实例化(一)

项目场景:

提示:项目结构

在这里插入图片描述


数据层

com/niujl/dao/BookDao.java(接口)

package com.niujl.dao;

public interface BookDao {
    void save();
}

com/niujl/dao/impl/BookDaoimpl.java(接口实现)

package com.niujl.dao.impl;

import com.niujl.dao.BookDao;

public class BookDaoimpl implements BookDao {
    public void save(){
        System.out.println("book dao save ...");
    }
}


业务层

com/niujl/service/BookService.java(接口)

package com.niujl.service;

public interface BookService {
    void save();
}

com/niujl/service/impl/BookServiceImpl.java(实现接口)

package com.niujl.service.impl;

import com.niujl.dao.BookDao;
import com.niujl.service.BookService;

public class BookServiceImpl implements BookService {
    //业务层中不能使用new的方式创建的dao对象,而是applicationContext.xml中配置new对象(spring做的)
    private BookDao bookDao;
    
    //提供bookDao对应的set方法(spring容器执行的(applicationContext.xml))
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
    
    public void save(){
        System.out.println("book service save ...");
        bookDao.save();
    }

}


配置文件告诉spring创建哪些实例以及依赖关系

src/main/resources/applicationContext.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">
<!--    导入的spring的坐标spring-context,对应的版本5.2.10.RELEASE-->

    <!--    scope决定spring的bean对象是否为单例模式,默认是单例(singleton)-->
    <!--    配置bean id="bookDao"是bean的属性-->
    <bean id="bookDao" name="dao" class="com.niujl.dao.impl.BookDaoimpl" scope="prototype"></bean>

    <bean id="bookService" name="service bookEbi" class="com.niujl.service.impl.BookServiceImpl">
        <!--配置server 与dao的依赖关系-->
        <property name="bookDao" ref="bookDao"/>
    </bean>

</beans>

测试类:

com/niujl/APPForScope.java

提示:接口可以接收实例对象,只不过只能用接口内的方法

package com.niujl;

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

public class APPForScope {
    public static void main(String[] args) {
//        获取IoC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//        获取bean
        //获取业务层的类
        BookService bookService = (BookService)ctx.getBean("bookService");
        //获取数据层的类
        BookDao bookDao = (BookDao)ctx.getBean("bookDao");
//        System.out.println(bookDao1);
//        System.out.println(bookDao2);
        //执行方法
        bookService.save();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值