• 『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, "调用静态方法");
        }
    
    }
  • 相关阅读:
    C#微信公众号的开发——服务配置
    JavaJDBC整理
    JavaSet接口、唯一元素和Map接口整理
    Java泛型、List接口整理
    Java集合、Iterator迭代器和增强for循环整理
    Java基础内部类、包的声名、访问修饰符、代码块整理
    Java基础super关键字、final关键字、static关键字、匿名对象整理
    Java基础构造方法和this关键字整理
    Java抽象类、接口整理
    Java封装、继承整理
  • 原文地址:https://www.cnblogs.com/yan-sh/p/13392984.html
Copyright © 2020-2023  润新知