- 创建对象的set方法
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;}}- 创建Dao和Service的连接
<?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"><!--2.配置bean--><!-- bean标签标示配置beanid属性标示给bean起名字class属性表示给bean定义类型 --><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/><bean id="bookService" class="com.itheima.service.impl.BookServiceImpl"><!--7.配置server与dao的关系--><!--注意:在server中配置关系property标签表示配置当前bean的属性name属性表示配置哪一个具体的属性ref属性表示参照哪一个bean--><property name="bookDao" ref="bookDao"/></bean></beans>Bean整体介绍Bean是保存在IoC中的对象 , 我们通过配置的方式获得Bean下面我们从三个方面分别讲解Bean:
bean基本配置首先我们先介绍bean本身性质:
类别描述名称bean类型标签所属beans标签功能定义Spring核心容器管理对象格式<beans><bean> </bean></beans>属性列表id:bean的id , 使用容器可以通过id值获得对应的bean , 在一个容器中id值唯一class:bean的类型 , 即配置的bean的全路径类名范例<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">然后我们介绍一下bean的别名:
类别描述名称name类型标签所属bean标签功能定义bean的别名 , 可定义多个 , 使用逗号 , 分号 , 空格分隔范例<bean id="bookService" name="service service4 bookEbi" class="com.itheima.service.impl.BookServiceImpl">
正常情况下 , 使用id和name都可以获得bean , 但推荐还是使用唯一id最后我们介绍一下bean的作用范围scope:
获得bean无论通过id还是name获取 , 如果无法找到则抛出异常NosuchBeanDefinitionException
类别描述名称scope类型标签所属bean标签功能定义bean的作用范围 , 可选范围如下:singleton:单列(默认)prototype:非单列范例<bean id="bookDao" name="dao" class="com.itheima.dao.impl.BookDaoImpl" scope="prototype"/>
这里的scope指产生对象的数量bean实例化bean的实例化通常分为四种方法 , 我们在下面一一介绍:
我们的scope在默认情况下是singleton , 因为很多对象只需要创建一次 , 多次创建会导致内存膨胀
合适交给容器进行管理的bean(singleton):
不合适交给容器进行管理的bean(prototype):
- 表现层对象
- 业务层对象
- 数据层对象
- 工具对象
- 封装实体的域对象(带有状态的bean)
- 构造方法(常用)
// 数据类public class BookDaoImpl implements BookDao {public BookDaoImpl() {System.out.println("book dao constructor is running ....");}public void save() {System.out.println("book dao save ...");}}<?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="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/></beans>
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 手机指南针怎么看(指南针怎么看方向)
- 指南针怎么看方向(指南针罗盘)
- 指南针怎么看东南西北(指南针怎么看家里方位)
- 星姿妍彩妆是什么牌子的彩妆?
- 飞甩鸡毛是什么牌子?
- 爱琪梅花是什么电视剧中的人物?
- 晒斑和黄褐斑的区别是什么?
- 父母爱情安泰结局是什么?
- 晒黑了怎么快速变白?
- 飞乔是什么牌子?
