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

中体建设集团门户登录重庆网站排名优化公司

中体建设集团门户登录,重庆网站排名优化公司,网站开发用c 语言,宠物医院网站建设方案构造方法实现实例化 无参构造器实例化 我们之前用的就一直是无参构造器实现实例化,虽然没有在类中写构造器,但是每个类都会有一个默认的无参构造器 有参构造器实例化 相比于无参构造器,我们只需要传入参数就可以了 我们可以通过construc…

构造方法实现实例化

无参构造器实例化

我们之前用的就一直是无参构造器实现实例化,虽然没有在类中写构造器,但是每个类都会有一个默认的无参构造器

有参构造器实例化

相比于无参构造器,我们只需要传入参数就可以了

我们可以通过constructor-arg标签来传递参数

<bean id="UserService" class="com.xxx.service.impl.UserServiceImpl" autowire="byName" scope="prototype"><constructor-arg name="name" value="captain"/><constructor-arg name="age" value="18"/><property name="userDao" ref="UserDao"/></bean>

当然传递自建的类也是可以的

<bean id="UserService" class="com.xxx.service.impl.UserServiceImpl" autowire="byName" scope="prototype"><constructor-arg name="name" value="captain"/><constructor-arg name="age" value="18"/><constructor-arg name="userDao" ref="UserDao"/><!--<property name="userDao" ref="UserDao"/>--></bean>

这里也可以把类的传参看作是依赖注入的构造方法

工厂方法实现实例化

静态工厂

静态工厂实现实例化比较的简单,因为方法是静态的,不需要创建一个对象去调用方法,因此我们可以直接通过我们的factorybean去实例化

<bean  id="UserDao1" class="com.xxx.factory.BeanFactory1" factory-method="userDao"/>

非静态工厂

    <bean id="BeanFactory2" class="com.xxx.factory.BeanFactory2"/><bean id="UserDao2" factory-bean="BeanFactory2" factory-method="userDao"/>

这里相当于我们要先实例化我们的工厂对象,通过这个对象在调用我们的方法,类似于要先new一个对象才能去调用方法

通过实现BeanFactory接口

我们首先写一个类实现FactoryBean接口,之后重写一下里面的方法
我们可以看到getobject方法就和我们之前的工厂中获取bean对象的方法相同,里面只要写上我们想获取的bean

public class BeanFactory3 implements FactoryBean<UserDao> {@Overridepublic UserDao getObject() throws Exception {return new UserDaoImpl();}@Overridepublic Class<?> getObjectType() {return UserDao.class;}
}

这个的xml配置的非常的简短

<bean id="UserDao3" class="com.cjh.factory.BeanFactory3"/>

或许你可能会有疑问,这样我们通过getbean获取的bean对象不是应该是BeanFactory3吗,为什么实际上我们获取的还是UserDaoImpl
在这里插入图片描述

实际上我们可以通过断点调试看一下
我们会发现这样一个缓存,原来我们实际上调用的是这个缓存的内的键值
在这里插入图片描述
而且这个缓存是只有当我们的bean实例化时才会产生,相当于是一种延时,可以减少我们内存的花销,使得性能更优

tips

那么如果我们还是想调用BeanFactory呢
我们可以在bean的名字前加一个&

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");Object userDao3 = applicationContext.getBean("&UserDao3");System.out.println(userDao3);

在这里插入图片描述
可以看到我们取到的就是BeanFactory

没用的小知识又增加了呢

http://www.yayakq.cn/news/507298/

相关文章:

  • 如何在网上建立自己的网站昆明网络公司排行榜
  • 东营网站建设设计网站关键词排名怎么优化
  • 公司网站建设怎么入账大商创官网
  • 深圳龙华住房和建设局网站官网用腾讯云服务器做网站
  • 网站频道规划关键词排名优化软件
  • 男男床做视频网站在线做网站手机验证收费吗
  • 企业网站建设招标学校网站建设需求分析调研表
  • 大连制作网站软件网站自动生成
  • 网站好坏怎么分析广东新闻发布会
  • 吉林省建设招标网站网站建设规划书样板
  • 网站建设哪家好公司深圳上市公司
  • 网站怎么上传ftpwordpress采集商品
  • 网站怎么做留言区特效网站大全
  • 网站制作书籍推荐中国住房和城乡建设网网站
  • 做网站 客户大概会有那些问题wordpress分类不显示图片
  • 深圳网站建设服务哪个便宜点恒网做的网站
  • 中国中国建设银行网站批量关键词排名查询工具
  • 做网站编写那些网站百度抓取率比较高
  • nodejs 网站开发工具网
  • 网站需要网监备案汕头网站建设网站
  • 东营市公司网站建设价格海南网站建设
  • 广州好的网站建设网站建设私人接单
  • 谁会制作网站车辆保险网站
  • 网站弄论坛形式怎么做小学校园门户网站建设
  • 福建省建设执业资格中心网站个人主页展示店铺
  • 网站建设 类型网站与域名的关系
  • 昆明seo网站移动版网站建设
  • 云一网站设计软件详细设计文档
  • 如何选择个人网站主题网站开发的prd 怎么写
  • 葫芦岛建设信息网站3d网页游戏开服表