Bean的别名配置:

Bean作用范围配置(重点)

名称:scope

类型:属性

所属:bean标签

功能:

  • 定义bean的作用范围,
  • singleton:单例(默认)
  • prototype:非单例

示例:

<bean id="bookDao" class="com.kuangziyao.dao.impl.BookServiceImpl" scope="prototype"/>

扩展:scope的取值不仅仅只有singleton和prototype,还有request、session、application、 websocket ,表示创建出的对象放置在web容器(tomcat)对应的位置。比如:request表示保存到request域中。

在我们的实际开发当中,绝大部分的Bean是单例的,也就是说绝大部分Bean不需要配置scope属性。

实例化Bean

构造方法方式【重点】

//BookDaoImpl实现类
public class BookDaoImpl implements BookDao {
    public BookDaoImpl() {
        System.out.println("book dao constructor is running ....");
    }
    public void save() {
        System.out.println("book dao save ...");
    }
}
//applicationContext.xml配置
<!--方式一:构造方法实例化bean-->
<bean id="bookDao" class="com.kuangziyao.dao.impl.BookDaoImpl"/>
//AppForInstanceBook测试类
public class AppForInstanceBook {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        BookDao bookDao = (BookDao) ctx.getBean("bookDao");

        bookDao.save();
    }
}

==注意:无参构造方法如果不存在,将抛出异常BeanCreationException==

发表回复

您的电子邮箱地址不会被公开。