zoukankan      html  css  js  c++  java
  • 『Spring』IOC创建对象的方式

    一:调用无参数构造器

     public User(){
           super();
           System.out.println("无参数构造器");
        }

    在Spring的 applicationContext.xml 配置文件中添加如下代码

    <bean id="user" class="cn.yan.spring.User"></bean>

    以上配置中,class表示“类”,取值应该是类的全名,即包名和类名,id是自定义的名称,通常使用类名并且首字母改为小写,

    例如类名是Date,则id值为date,如果类名是Student,则id值为student

    public static void main(String[] args) {
        // 加载Spring的配置文件,获取Spring容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    
        // 通过Spring容器获取对象
        Date user= (User) ac.getBean("user");
    
        // 测试输出
        System.out.println(user);
    }

    二:调用带参数构造器

     public User(int id, String name){
            System.out.println("带参数构造器");
            this.id = id;
            this.name = name;
        } 

    在Spring的 applicationContext.xml 配置文件中添加如下代码

    <!-- 方法1 -->
    <bean id="user" class="com.isoftstone.bean.User">
        <constructor-arg value="100" index="0" type="int" ></constructor-arg>
        <constructor-arg value="StanLong" index="1" type="java.lang.String"></constructor-arg>
    </bean> 
    
    <!--方法2 依赖参数-->
    <bean id="str" class="java.lang.String">
        <constructor-arg value="StanLong"></constructor-arg>    
    </bean>
    <bean id="user" class="com.isoftstone.bean.User"> <constructor-arg index="0" type="int" value="100" ></constructor-arg> <constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>
    </bean>
    public static void main(String[] args) {
        // 加载Spring的配置文件,获取Spring容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    
        // 通过Spring容器获取对象
        Date user= (User) ac.getBean("user");
      // 测试输出  
      System.out.println(
    user.getId());
      System.out.println(user.getName()); 
    }

    三:工厂模式创建对象(静态方法和实例方法)

    通过工厂类创建对象

    //先创建一个工厂类//工厂类
    public class ObjectFactory {
        
        //实例方法创建对象
        public User getInstance(){
            return new User(100, "调用实例方法");
        }
        
        //静态方法创建对象
        public static User getStaticInstance(){
            return new User(101, "调用静态方法");
        }
    
    }
  • 相关阅读:
    Python eval 函数妙用
    502与504故障分析与解决方法
    [转]谈谈select, iocp, epoll,kqueue及各种网络I/O复用机制
    计算阶乘n!末尾0的个数
    C++中的Overload、Override和Overwrite
    C++中的空类与空结构体大小
    多线程编程之优先级翻转问题
    数据库原理之事务(二)
    数据库原理之事务(一)
    NoSQL之基础篇
  • 原文地址:https://www.cnblogs.com/yan-sh/p/13392984.html
Copyright © 2011-2022 走看看