美文网首页程序员
IOC-Bean对象以及常用属性

IOC-Bean对象以及常用属性

作者: 常威爆打来福 | 来源:发表于2017-09-08 21:08 被阅读0次

    一 IOC-Bean对象创建的三种方式

    • 无参构造创建
    • 静态工厂创建
    • 实例工厂创建
      1 无参构造创建(默认是无参的)
    • .xml配置
        <!--无参构造-->
        <bean id="user" class="User"></bean>
    
    • 对象定义
    public class User {
        public void add(){
            System.out.println("add...................");
        }
    }
    
    • 测试
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * Created by pc on 2017/9/7.
     */
    public class TextIOC {
        public static void main(String[] args) {
            //加载Spring配置文件,并创建对象
            ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
            //得到配置的对象
           User user= (User) context.getBean("user");
            user.add();
         System.out.println(user);
        }
    }
    

    2 静态工厂创建

    • .xml配置
        <!--使用工厂创建对象-->
        <bean id="bean2" class="Bean2Factory" factory-method="getBean2"></bean>
    
    • 创建对象
    public class Bean2 {
        public void add(){
            System.out.println("bean2............");
        }
    }
    
    • 创建静态工厂类
    public class Bean2Factory {
        public  static  Bean2 getBean2(){
        return  new Bean2();
        }
    }
    
    • 测试
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * Created by pc on 2017/9/7.
     */
    public class TextIOC {
        public static void main(String[] args) {
            //加载Spring配置文件,并创建对象
            ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
            //得到配置的对象
     Bean2 bean2= (Bean2) context.getBean("bean2");
            System.out.println(bean2);
        }
    }
    
    

    3 实例工厂创建

    • .xml配置
       <!--创建工厂对象-->
        <bean id="bean3Factory" class="Bean3Factory"></bean>
        <bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean>
    

    注释:因为不是静态对象,所以不能直接通过类名直接调用方法,所以要先通过类名。

    • 对象创建
    public class Bean3 {
    public void add(){
        System.out.println("bean3............");
    }
    }
    
    • 实体工程类创建
    public class Bean3Factory {
        public  Bean3 getBean3(){
            return  new Bean3();
        }
    }
    
    • 测试
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * Created by pc on 2017/9/7.
     */
    public class TextIOC {
        public static void main(String[] args) {
            //加载Spring配置文件,并创建对象
            ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
            //得到配置的对象
            Bean3 bean3= (Bean3) context.getBean("bean3");
            System.out.println(bean3);
            bean3.add();
    
        }
    }
    

    二 Bean标签常用属性
    (1) id属性:起名称,id属性值名称任意命名

    • id属性值,不能包含特殊符号
    • 根据id值得到配置对象

    (2)class属性:创建对象所在类的全路径
    (3)name属性:功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值里面可以包含特殊符号。
    (4)scpoe属性:

    • singleton:默认值,单例(只有一个对象)
      1 .xml配置


      单例.png

      2 测试

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * Created by pc on 2017/9/7.
     */
    public class TextIOC {
        public static void main(String[] args) {
            //加载Spring配置文件,并创建对象
            ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
            //得到配置的对象
            User user1= (User) context.getBean("user");
            User user2= (User) context.getBean("user");
            System.out.println(user1);
            System.out.println(user2);
        }
    }
    

    3 运行结果

    运行结果
    • 注释:结果显示,单例测试调用同一个User对象的两个配置User对象输出地址相同
    • prototype:多例

    1.xml配置

    多例

    2 测试

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * Created by pc on 2017/9/7.
     */
    public class TextIOC {
        public static void main(String[] args) {
            //加载Spring配置文件,并创建对象
            ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
            //得到配置的对象
            User user1= (User) context.getBean("user");
            User user2= (User) context.getBean("user");
            System.out.println(user1);
            System.out.println(user2);
        }
    }
    

    3 运行结果

    运行结果

    注释:多例测试,调用同一个User对象的两个配置User对象输出地址不同

    • request:创建对象把对象放到request域里
    • session:创建对象把对象放到session域里
    • globalSession(全局):创建对象把对象放到globalSession域里(登录一次,其他同类不用在登录)

    相关文章

      网友评论

        本文标题:IOC-Bean对象以及常用属性

        本文链接:https://www.haomeiwen.com/subject/pqqgjxtx.html