当前位置: 首页 > news >正文

Spring(创建对象的方式3个)

3、Spring IOC创建对象方式一:
    01、使用无参构造方法
    //id:唯一标识     class:当前创建的对象的全局限定名
  

  <bean id="us1" class="com.msb.pojo.User"/>


    02、使用有参构造
    

<bean id="us2" class="com.msb.pojo.User">//name值 = 构造方法参数名 相同,而不是属性名<constructor-arg name="uid" value="222" /><constructor-arg name="uname" value="李四" /><constructor-arg name="uage" value="30" /><constructor-arg name="usex" value="男" /></bean><bean id="us2" class="com.msb.pojo.User">//index[下标从0开始],对应构造方法里的参数下标//type://value:一般为简单类型赋值//ref:一般为引用类型赋值<constructor-arg index= "0" value="222" /><constructor-arg index = "1" value="李四" /><constructor-arg index = "2" value="30" /><constructor-arg index="3"  value="男" /></bean>


    03、使用工厂模式构造
    设计模式:为解决某一类问题而产生的
    工厂设计模式:可以达到对象的统一管理,可以批量产生某一类对象
1)方案一:使用实例工厂类 + 无参
         

 public class UsersFactory{public User getInstance(){return new User(123,"李思思",30,"女");}
}


---在applicationContext.xml中
        01、先实例工厂对象,
        02根据工厂对象创建对应的Bean对象

<!--UserFactory factory=new usersFactory()-->
<bean id="factory" class="com.msb.factory.usersFactory"/><bean id="us3" factory-bean="factory" factory-method="getInstance"/>

2)方案二:使用静态工厂类 + 无参
     

     public class UsersFactory{public static User getInstance(){return new User(123,"李思思",30,"女");}
}


---在applicationContext.xml中
直接指定哪个工厂类的哪个方法生成对应的Bean对象
  

  <!--User user2=UsersFactory.getStaticInstance-->
使用静态工厂模式
<bean id="us4" class="com.msb.factory.UsersFactory" factory-method="getStaticInstance"/>


3)方案三:使用实例工厂类 + 有参
         

public class UsersFactory{public User getInstance1(User user){return user;}
}


---在applicationContext.xml中
        01、先实例工厂对象,
        02根据工厂对象创建对应的Bean对象

<!--UserFactory factory=new usersFactory()-->
<bean id="factory" class="com.msb.factory.usersFactory"/>
<!--User user3=factory.getInstance(us)-->
<bean id="us5" factory-bean="factory" factory-method="getInstance1"><constructor-arg name="user" ref="us1"></constructor-arg>
</bean>

4)方案一:使用静态工厂类 + 有参
       

  public class UsersFactory{public static User getInstance(){return new User(123,"李思思",30,"女");}
}


---在applicationContext.xml中
直接指定哪个工厂类的哪个方法生成对应的Bean对象,同时设置参数
  

 <!--User user2=UsersFactory.getStaticInstance2(us)-->
<bean id="us6" class="com.msb.factory.UsersFactory" factory-method="getStaticInstance2"><constructor-arg name="user" ref="us1"></constructor-arg>
</bean>

http://www.lryc.cn/news/320412.html

相关文章:

  • 【GPT-SOVITS-02】GPT模块解析
  • 6个选品建议,改善你的亚马逊现状。
  • SQL中的SYSDATE函数
  • Rust的async和await支持多线程运行吗?
  • P2676 [USACO07DEC] Bookshelf B
  • 【数学】第十三届蓝桥杯省赛C++ A组/研究生组《爬树的甲壳虫》(C++)
  • Java毕业设计 基于springboot vue招聘网站 招聘系统
  • Leetcode 1. 两数之和
  • 【elasticsearch实战】从零开始设计全站搜索引擎
  • 基于tcp协议的网络通信(基础echo版.多进程版,多线程版,线程池版),telnet命令
  • Ubuntu20系统安装完后没有WIFI
  • 计算机视觉——目标检测(R-CNN、Fast R-CNN、Faster R-CNN )
  • log4j2.xml配置文件不生效
  • QT信号与槽实现方式
  • Yarn面试重点
  • 高速口光口通信
  • python--剑指offer--15. 二进制中1的个数
  • uniapp h5 部署
  • 排序算法:快速排序(递归)
  • 蓝桥杯每日一题(BFS)
  • 【C语言】linux内核pci_save_state
  • 轻松打造完美原型:9款在线工具推荐
  • Vue3中Pinia状态管理库学习笔记
  • 共谋企业出海新篇章纷享销客荣获数字中国企业峰会“卓越成果奖”
  • 【MySQL】group_concat 函数和 locate 函数运用之找到每篇文章的主题
  • RedisCluster集群中的插槽为什么是16384个?
  • 一直出现问题,发现服务器磁盘空间已满导致,腾出服务器磁盘空间命令
  • 吴恩达机器学习笔记 二十三 倾斜数据集的误差指标 精确率 召回率 精确率与召回率的平衡 F1分数
  • 无人游艇的研发和开发对于多个领域具有重要
  • 在AI创业热潮下,如何抓住AI赚钱机会,实现人生逆袭