Java基础_Spring三种构造方法
第一种构造方法
接口:FirstDao
package com.leehl.springgitider.dao; public interface FirstDao { public void save(); }
主方法:FirstDaoimpl
package com.leehl.springgitider.factory; import com.leehl.springgitider.dao.FirstDao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AppFirstDao { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); FirstDao firstDao = (FirstDao) ctx.getBean("FirstDao"); firstDao.save(); } }
提供的构造方法: AppFirstDao 继承接口 注意里面的写法用到的Spring容器构造
package com.leehl.springgitider.dao.impl;
import com.leehl.springgitider.dao.FirstDao;
public class FirstDaoimpl implements FirstDao {
// public FirstDaoimpl() { 构造方法
// }
private FirstDaoimpl() { //Spring一样可以用
}
@Override
public void save() {
System.out.println("第一种构造方法");
}
}
Spirng XML配置文件:
<!--第一种构造方法-->
<bean id="FirstDao" class="com.leehl.springgitider.dao.impl.FirstDaoimpl" />
注意的点:
在FirstDaoimpl文件中将构造器私有化,Spring一样可以运行它的无参构造器。
spring在构造bean的时候调用的是无参构造,如果在提供的构造方法中的无参构造器中加入传入参数就会报错实例化失败
无参构造方法如果不存在,将抛出BeanCreationException异常
第二种构造方法
生成一个静态方法设置为静态工厂
在主方法中直接调用静态方法生成一个bean对象
配置文件:
<bean id="SecondDao" class="com.leehl.springgitider.dao.impl.SecondDaoimpl" factory-method="路径"/>
第三种构造方法
<bean id="FirstDao" class="com.leehl.springgitider.dao.impl.FirstDaoimpl" />
<bean id="ThirdDao" class="com.leehl.springgitider.dao.impl.SecondDaoimpl" factory-method="工厂的方法" factory-bean="FirstDao"/>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言