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

河北营销类网站设计成都网站建设 外包

河北营销类网站设计,成都网站建设 外包,中文域名是网站名称吗,福永自适应网站建构造方法实现实例化 无参构造器实例化 我们之前用的就一直是无参构造器实现实例化,虽然没有在类中写构造器,但是每个类都会有一个默认的无参构造器 有参构造器实例化 相比于无参构造器,我们只需要传入参数就可以了 我们可以通过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/714123/

相关文章:

  • iis做本地视频网站原创手做网站
  • 永康网站网站建设百度开发者
  • 视频网站怎么做统计东莞洪梅网站建设
  • 公司想制作网站济南网站建设平台官网
  • 专业做酒的网站有哪些免费网站建
  • 苏州企业网站制作开发网站站长是什么
  • wordpress查询插件seo网站优化建议
  • 广州led网站建设网站关键词调整 收录
  • 泛微e8做网站门户智慧团建管理系统
  • php 微信 网站开发中学网站建设方案计划
  • 如何制作自己的网站的邮箱注册企业邮箱需要什么
  • 如何用自己公司网站做邮箱ih5平台发展前景
  • 做网站想要中立网站开发费用预算
  • 营销软件网站wordpress十大主题
  • 网站自动识别移动终端wordpress now 1.5
  • 软件下载网站如何建设门户网站系统源码
  • 设计营销型网站域名长沙建站seo公司
  • 报名窗口网站建设专业网站定制团队
  • 二建证从住房建设厅网站调出流程wordpress 扒站
  • 漳州市住房与城乡建设部网站wordpress 分类目录 层级
  • 如何做视频网站旗下账号做门户网站 公司营业范围是啥
  • 网站建设课设报告wordpress网站收录插件
  • 吉林公路建设有限公司网站百度重庆营销中心
  • 平度市建设局网站深圳最近一个星期新闻
  • 微网站怎么注册天河区网站建设
  • iis网站服务器安全隐患wordpress html结尾
  • 豫icp郑州网站建设企业为什么要开发网址
  • 网页网站制作公司网站限时抢购怎么做
  • 网站活动打造深圳建设监理协会网站
  • 潍坊市做网站的公司企业网站制作免费下载