多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
bean1.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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <!--把对象的创建交给spring来管理--> <!-- spring对bean的管理细节 1.创建bean的三种方式 2.bean对象的作用范围 3.bean对象的生命周期 --> <!-- 创建Bean的三种方式--> <!-- 第一种方式创建Bean:使用默认构造函数创建 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时. 采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造函数,则对象无法创建 --> <bean id="accountService1" class="com.itheima.service.impl.AccountServiceImpl1"></bean> <!-- 第二种方式创建Bean: 使用普通工厂中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器) --> <bean id="instanceFactory2" class="com.itheima.factory.InstanceFactory2"></bean> <bean id="accountService2" factory-bean="instanceFactory2" factory-method="getAccountService"></bean> <!-- 第三种方式创建Bean: 使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器) --> <bean id="accountService3" class="com.itheima.factory.StaticFactory3" factory-method="getAccountService"></bean> </beans> ~~~ ***** ~~~ package com.itheima.factory; /** * @author: hcf * @qq: 46914685 * @email: 46914685@qq.com */ import com.itheima.service.IAccountService; import com.itheima.service.impl.AccountServiceImpl2; /** * 模拟一个工厂类(该类可能是存在jar包中的,我们无法通过修改源码的方式来提供默认构造函数) */ public class InstanceFactory2 { public IAccountService getAccountService(){ return new AccountServiceImpl2(); } } ~~~ ***** ~~~ package com.itheima.service.impl; import com.itheima.service.IAccountService; /** * @author: hcf * @qq: 46914685 * @email: 46914685@qq.com */ /** * 账户的业务层实现类 */ public class AccountServiceImpl2 implements IAccountService { public void saveAccount() { System.out.println("service中的saveAccount方法执行了!2222222"); } } ~~~ ***** ~~~ /** * 第二种方式创建Bean: * 使用普通工厂中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器) */ @Test public void testCreateBean2(){ //1.获取核心容器对象 ApplicationContext ac = new ClassPathXmlApplicationContext("bean1.xml"); //2.创建bean对象 IAccountService accountService2 = ac.getBean("accountService2", IAccountService.class); accountService2.saveAccount(); } ~~~