欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建bean的三种方式

程序员文章站 2022-05-24 18:23:34
...

第一种方式:使用默认构造函数创建。

在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时。
采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造函数,则对象无法创建。

注:一定要显示的写默认构造函数,如果你不写,系统不会给你加上。

 <bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"></bean>

第二种方式: 使用普通工厂中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器)

package factory;

import Service.AccountServletImpl;
import Service.IAccountServlet;

public class init {
    public IAccountServlet getAccountServlet(){
        return  new AccountServletImpl();
    }
    public init(){
        System.out.println("init对象创建了");
    }
}

bean.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">

    <bean id="accountDao" class="Dao.AccountDaoImpl"></bean> 
    <bean id="initservlet" class="factory.init"></bean>
    <bean id="acountServlet" factory-bean="initservlet" factory-method="getAccountServlet"></bean>
</beans>

获取时,和方法一一样。

        AccountServletImpl acountServlet= (AccountServletImpl) ac.getBean("acountServlet");

第三种方式:使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器)

 package factory;

import Service.AccountServletImpl;
import Service.IAccountServlet;

public class init {
    public static IAccountServlet getAccountServlet(){
        return  new AccountServletImpl();
    }
    public init(){
        System.out.println("init对象创建了");
    }
}

xml配置

 <bean id="acountServlet"  class="factory.init" factory-method="getAccountServlet"></bean>