spring 02 ioc,di

创建对象的几种方式
  1. 调用无参数构造器
  2. 调用有参数构造器
  3. 工厂
    静态方法
    <bean id=”’ class=”” factory-method=””/>
    非静态方法
    <bean id=”factory” class=”..”>
    <bean id=”” factory-bean=” factory” factory-method=”实例方法” />
    1. 反射
案例
  1. beam.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="user" class="com.xxjqr.spring01.create_obj.User"></bean>
     -->   
    
    
    <!-- 调用有参构造器
    <bean id="user" class="com.xxjqr.spring01.create_obj.User">
        <constructor-arg index="2" type="int" value="22"></constructor-arg>
        <constructor-arg index="0" type="String" value="丁昌江"></constructor-arg>
        <constructor-arg index="1" type="String" value="男"></constructor-arg>
    </bean>
    --> 
    
    
    <!-- 工厂模式-静态方法
        <bean id="user" class="com.xxjqr.spring01.create_obj.UserFactory" factory-method="getStaticInstance"></bean>
     -->
   
    <!-- 工厂模式-非静态方法 -->
    <bean id="factory"  class="com.xxjqr.spring01.create_obj.UserFactory"></bean>
    <bean id="user" factory-bean="factory" class="com.xxjqr.spring01.create_obj.User" factory-method="getInstance"></bean>
  
    
</beans>

@Data
@AllArgsConstructor
public class User {
    private String name;
    private String sex;
    private int age;
}
public class UserFactory {
    public static User getStaticInstance(){
        return new User("单身汉","男",20);
    }
    
    public User getInstance(){
        return new User("单身汉","男",20);
    }
}

测试类

public class App {
    private ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml",App.class);
    
    @Test
    public void testUser() {
        User user = (User) ac.getBean("user");
        System.out.println(user);
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,436评论 25 708
  • 以前我以为,作为一个资深的女屌丝,这辈子会孤苦终老,从来没想过,有一天我会遇见你。 从今天起,这本书写给你。
    用生命搞SIAO的恐龙妹阅读 336评论 0 1
  • 🌴如果那一年我们不曾遇见,是不是就不会相爱,然后结婚,生子呢,? 这四年的每一天,我都是没有安全感的,具体原因我也...
    星空下的拥抱阅读 412评论 0 3