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"/>

 

 


posted @   Lee最好好好吃饭  阅读(135)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示