0
点赞
收藏
分享

微信扫一扫

Spring-依赖注入(DI)入门案例及bean基础配置


目录

​​一、DI入门案例思路分析​​

​​二、DI入门案例​​

​​三、bean基础配置​​

​​bean别名配置​​

​​bean作用范围配置​​

一、DI入门案例思路分析

1、基于IoC管理bean

2、Service中使用new形式创建Dao对象是否保留?(否)

3、Service中需要Dao对象如何进入到Service中?(提供方法)

4、Service与Dao间的关系如何描述?(配置)

二、DI入门案例

BookService接口:

public interface BookService {
public void save();
}

BookServiceImpl实现类:

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

public class BookServiceImpl implements BookService {
//5.删除业务层中使用new的方式创建的dao对象
private BookDao bookDao;

public void save() {
System.out.println("book service save ...");
bookDao.save();
}
//6.提供对应的set方法
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}

applicationContext.xml代码:

<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
<!--7.配置server与dao的关系-->
<!--property标签表示配置当前bean的属性
name属性表示配置哪一个具体的属性
ref属性表示参照哪一个bean-->
<property name="bookDao" ref="bookDao"/>
</bean>

App2:

import com.itheima.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App2 {
public static void main(String[] args) {
//获取IoC容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean(根据bean配置id获取)

BookService bookService = (BookService) ctx.getBean("bookService");
bookService.save();

}
}

执行结果:

Spring-依赖注入(DI)入门案例及bean基础配置_java

三、bean基础配置

类别

描述

名称

bean

类型

标签

所属

beans标签

功能

定义Spring核心容器管理的对象

格式

<beans>

        <bean/>

        <bean></bean>

</beans>

属性列表

id:bean的id,使用容器可以通过id值获取对应的bean,在一个容器中id值唯一

class:bean类型,即配置的bean的全路径类名

范例

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoIml"/>

<bean id="bookService" class=“com.itheima.service.iml.BookServiceIml”></bean>

bean别名配置

类别

描述

名称

name

类型

属性

所属

bean标签

功能

定义bean的别名,可定义多个,使用逗号(,)分号(;)空格( )分隔

范例

<bean id="bookDao" name=“dao bookDaoImpl” class="com.itheima.dao.impl.BookDaoImpl"/>

<bean name="service,bookServiceImpl" class="com.itheima.service.impl.BookServiceImpl"/>

注意事项:

获取bean无论是通过id还是name获取,如果无法获取到,将抛出异常NoSuchBeanDefinitionException

NoSuchBeanDefinitionException:No bean named 'bookServiceImpl' available

bean作用范围配置

类别

描述

名称

scope

类型

属性

所属

bean标签

功能

定义bean的作用范围,可选范围如下

singleton:单例(默认)

prototype:非单例

范例

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" scope="prototype"/>

为什么bean默认认为单例?

适合交给容器进行管理的bean

■ 表现层对象

■ 业务层对象

■ 数据层对象

■ 工具对象

不适合交给容器进行管理的bean

■ 封装实体的域对象

 

举报

相关推荐

0 条评论