• 用静态工厂的方法实例化bean


    //代码如下:

    package com.timo.domain;
    
    public class ClientService {
        //use static factory method create bean
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public static ClientService getClientService() {
            return clientService;
        }
    
        public static void setClientService(ClientService clientService) {
            ClientService.clientService = clientService;
        }
    
        private static ClientService  clientService=new ClientService();
        private static People people=new People();
        private ClientService(){}
        public static ClientService createInstance(){
            clientService.setName("杨贵妃");
            return  clientService;
        }
        public static People createPeopleInstance(){
            return  people;
        }
    }

    配置文件

    applicationContext-static-factory.xml

    的代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="clientService" class="com.timo.domain.ClientService" factory-method="createInstance"/>
    </beans>

    测试类的代码如下:

    package com.timo.test;
    
    import com.timo.domain.ClientService;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test4 {
        public static void main(String[] args) {
            ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-static-factory.xml");
            ClientService clientService = applicationContext.getBean(ClientService.class);
            System.out.println("name="+clientService.getName());
        }
    }
  • 相关阅读:
    描述一下 JVM 加载 class 文件的原理机制?
    Java 中会存在内存泄漏吗,请简单描述
    关于同步机制的一些见解
    Mybatis 一对一,一对多,多对一,多对多的理解
    关于JavaBean实现Serializable接口的见解
    Python 文件I/O
    Python 模块
    Python 函数
    Python time tzset()方法
    Python time time()方法
  • 原文地址:https://www.cnblogs.com/1540340840qls/p/7885114.html
Copyright © 2020-2023  润新知