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

方维o2o 2.9蓝色团购网站程序源码模板惠州市注册公司

方维o2o 2.9蓝色团购网站程序源码模板,惠州市注册公司,山东东平建设工程招标网站,智慧城市o2o wordpress对象已经能交给Spring的IOC容器来创建了#xff0c;但是容器是如何来创建对象的呢? 就需要研究下bean的实例化过程#xff0c;在这块内容中主要解决两部分内容#xff0c;分别是 bean是如何创建的实例化bean的三种方式#xff0c;构造方法,静态工厂和实例工厂 在讲解这…对象已经能交给Spring的IOC容器来创建了但是容器是如何来创建对象的呢? 就需要研究下bean的实例化过程在这块内容中主要解决两部分内容分别是 bean是如何创建的实例化bean的三种方式构造方法,静态工厂和实例工厂 在讲解这三种创建方式之前我们需要先确认一件事: bean本质上就是对象对象在new的时候会使用构造方法完成那创建bean也是使用构造方法完成的。 基于这个知识点出发我们来验证spring中bean的三种创建方式。 1 构造方法实例化 内部走的依然是构造函数,能访问到类中的私有构造方法,显而易见Spring底层用的是反射 编写java 类 public interface BookDao {public void save(); }public class BookDaoImpl implements BookDao {public BookDaoImpl() {System.out.println(book dao constructor is running ....);}public void save() {System.out.println(book dao save ...);}} 将类配置到Spring容器 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean idbookDao classcom.itheima.dao.impl.BookDaoImpl//beans编写运行程序 public class AppForInstanceBook {public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookDao bookDao (BookDao) ctx.getBean(bookDao);bookDao.save();} }由此可知说明Spring容器在创建对象的时候也走的是构造函数且在容器启动的时候就创建 2实例工厂与FactoryBean (1)准备一个UserDao和UserDaoImpl类 public interface UserDao {public void save(); }public class UserDaoImpl implements UserDao {public void save() {System.out.println(user dao save ...);} }(2)创建一个工厂类userDaoFactory并提供一个普通方法注意此处和静态工厂的工厂类不一样的地方是方法不是静态方法 public class UserDaoFactory {public UserDao getUserDao(){return new UserDaoImpl();} }(3实例工厂实例化配置 bean iduserFactory classcom.itheima.factory.UserDaoFactory/ bean iduserDao factory-methodgetUserDao factory-beanuserFactory/实例化工厂运行的顺序是: 创建实例化工厂对象,对应的是第一行配置 调用对象中的方法来创建bean对应的是第二行配置 factory-bean:工厂的实例对象 factory-method:工厂对象中的具体创建对象的方法名,对应关系如下: factory-mehod:具体工厂类中创建对象的方法名 4在AppForInstanceUser运行类使用从IOC容器中获取bean的方法进行运行测试 public class AppForInstanceUser {public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);UserDao userDao (UserDao) ctx.getBean(userDao);userDao.save();} }(5)运行后可以查看到结果 4.2.3.3 FactoryBean的使用 上述实例工厂实例化的方式配置的过程还是比较复杂所以Spring为了简化这种配置方式就提供了一种叫FactoryBean的方式来简化开发。 具体的使用步骤为: (1)创建一个UserDaoFactoryBean的类实现FactoryBean接口重写接口的方法 public class UserDaoFactoryBean implements FactoryBeanUserDao {//代替原始实例工厂中创建对象的方法Overridepublic UserDao getObject() throws Exception {// 实际创建并返回 UserDao 实例的地方return new UserDao();}Overridepublic Class? getObjectType() {// 返回由这个工厂创建的对象的类型return UserDao.class;}Overridepublic boolean isSingleton() {// 指定是否每次调用都返回同一个实例return true;} }解释 在Java中Class? 是一个泛型类型表示未知类型的类。当你使用 return UserDao.class; 这样的语句时你实际上是在返回一个代表 UserDao 类的 Class 对象。 在这个例子中UserDaoFactory 类实现了 FactoryBean 接口并重写了 getObjectType() 方法来指定它生产的对象是 UserDao 类型的。这样当其他代码通过工厂获取对象时它们可以知道应该期待什么类型的对象。 (2)在Spring的配置文件中进行配置 bean iduserDao classcom.itheima.factory.UserDaoFactoryBean/(3)AppForInstanceUser运行类不用做任何修改直接运行 这种方式在Spring去整合其他框架的时候会被用到所以这种方式需要大家理解掌握。 查看源码会发现FactoryBean接口其实会有三个方法分别是: T getObject() throws Exception;Class? getObjectType();default boolean isSingleton() {return true; }方法一:getObject()被重写后在方法中进行对象的创建并返回 方法二:getObjectType(),被重写后主要返回的是被创建类的Class对象 方法三:没有被重写因为它已经给了默认值从方法名中可以看出其作用是设置对象是否为单例默认true也可以重写成fause。但是一般情况下我们都会采用单例也就是采用默认即可。所以isSingleton()方法一般不需要进行重写。 bean实例化小结 Spring的IOC实例化对象的三种方式分别是: 构造方法(常用)静态工厂(了解)实例工厂(了解) FactoryBean(实用) 这些方式中重点掌握构造方法和FactoryBean即可。 需要注意的一点是构造方法在类中默认会提供但是如果重写了构造方法默认的就会消失在使用的过程中需要注意如果需要重写构造方法最好把默认的构造方法也重写下。 [说明]内容主要来源黑马程序员网上资源学习
http://www.dnsts.com.cn/news/153564.html

相关文章:

  • 网站设计网站机构公司官网建设多少钱
  • 在线咨询网站模板如何建设一个小型网站
  • 厦门有没网站建设的公司建筑招工人在哪个网站比较好找
  • 网站建设怎么样工作辽宁建设工程信息网站
  • 怎么让别人做网站器材管理网站开发
  • 常州模板网站建设信息全新微信号2元一个
  • 湖南省住房和城乡建设厅官方网站教育培训机构网站模板
  • 一个微信可以做两个网站支付宝吗公众号绑定网站教程
  • 软件自学网官方网站彩票网站做代理
  • wix英文网站建设wordpress 书 pdf
  • 网站改版的意义网站建设战略规划的方法
  • 建筑学院网站南京怎样优化关键词排名
  • 网站制作流程详解(学做网站第一步)网络科技有限
  • dede 网站地图样式关键词排名推广软件
  • 阿里云服务器做网站安全吗浙江建设职业技术学院网站
  • dns加网站杭州建设信用网网站
  • 郴州网站建设郴州绵阳个人网站建设
  • 企业做自己的网站要注意什么移动互联网开发学习心得
  • 哪些购物网站有做拼团活动什么主题 wordpress
  • 苏州展厅设计公司排名班级优化大师
  • 投资网站策划网站logo在线设计
  • 企业网站建设方案书前言网页设计师培训机构有吗
  • 休闲食品网站模板廊坊高端网站制作
  • 文化传媒 网站设计ppt免费下载雷锋网站
  • 网站开发学哪一个好做微信小程序和网站那个简单
  • 商派商城网站建设方案菏泽+网站建设公司
  • 网站名称写什么wordpress 安装的时候是英文
  • 网站的备案编号珠海网络网站建设
  • 有没有做任务的网站专业网络公司报价
  • 下载 网站样板网站源码 一品资源网