zoukankan      html  css  js  c++  java
  • Spring实践第二天(创建对象的三种基本方式)

    说明

    昨天已经采用构造方法建立了一个项目并测试成功,

    今天的项目实践如果看不懂就请参考我昨天实践写的博文:

    Spring实践第一天(ioc 简单 HelloWorld)

    入门小白,请多指教!

     

     第一种方法:采用构造方法的方式

    1.只在applicationContext.xml中配置bean即可:

        <!-- 管理 bean -->
        <!-- 方式 1 :采用的构造方法方式来创建 -->
        <bean id="UserService"
              class="com.nenu.service.impl.UserServiceImpl">
        </bean>

    2.测试:

    @Test
    public void iocTest(){
        //1.获取容器实例
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
    
        //2.通过容器对象获取里面管理的bean
        UserService userService =
                (UserService) context.getBean("UserService");
    
        //3.执行
        userService.add();
    }

     

    第二种方法:采用静态工厂的方式来创建实例

    1.新建静态工厂UserServiceStaticFactory:

    package com.nenu.factory;
    
    import com.nenu.service.UserService;
    import com.nenu.service.impl.UserServiceImpl;
    
    public class UserServiceStaticFactory {
        private static UserService userService = new UserServiceImpl();
    
        public static UserService getInstance(){
            return userService;
        }
    }

    2.在applicationContext中配置:

    <!-- 方式 2 :采用静态工厂的方式来创建实例 -->
    <bean id="UserServiceByStaticFactory"
          class="com.nenu.factory.UserServiceStaticFactory"
          factory-method="getInstance">
    </bean>

    3.测试:

    @Test
    public void staticFactoryTest(){
        //1.获取容器实例
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
    
        //2.通过容器对象获取里面管理的bean
        UserService userService =
                (UserService) context.getBean("UserServiceByStaticFactory");
    
        //3.执行
        userService.add();
    }

     

    第三种方法:采用工厂的方式来创建实例

    1.创建静态工厂UserServiceFactory:

    package com.nenu.factory;
    
    import com.nenu.service.UserService;
    import com.nenu.service.impl.UserServiceImpl;
    
    public class UserServiceFactory {
      private UserService userService = new UserServiceImpl();
    
      public UserService getInstance(){
      return userService;
      }
    }

    2.在applicationContext中配置:

    <!-- 方式 3 :采用工厂的方式来创建实例-->
    <!-- 3.1 先声明工厂-->
    <bean id="UserServiceFactory"
          class="com.nenu.factory.UserServiceFactory"/>
    <!-- 3.2 创建实例,通过工厂方式创建-->
    <bean id="UserServiceByFactory"
          factory-bean="UserServiceFactory"
          factory-method="getInstance">
    </bean>

    3.测试:

    @Test
    public void FactoryTest(){
        //1.获取容器实例
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
    
        //2.通过容器对象获取里面管理的bean
        UserService userService =
                (UserService) context.getBean("UserServiceByFactory");
    
        //3.执行
        userService.add();
    }
  • 相关阅读:
    Java实现 LeetCode 440 字典序的第K小数字
    Java实现 LeetCode 438 找到字符串中所有字母异位词
    route命令详解与使用实例
    Google protobuf的安装及使用
    linux内核驱动中_IO, _IOR, _IOW, _IOWR 宏的用法与解析
    _GUN_SOURCE宏
    CodeViz产生函数调用图
    linux下阅读源代码的工具
    linux gcc 编译时头文件和库文件搜索路径
    Makefile第四讲:include 引用其它makefile文件
  • 原文地址:https://www.cnblogs.com/yangf428/p/12269448.html
Copyright © 2011-2022 走看看