程序员

spring中bean的知识点1.0

2018-09-07  本文已影响22人  知识学者

3种Beans的实列法的方式

定义一个Student类,实列化其对象。

1.0 使用类构造器实列化

public class Student {
        
    public Student()
    {
        System.out.print(" 我是无参数构造");
    }

}

xml的配置

<beans>
<bean id="student" class="Student"></bean>
</beans>

结果如下

信息: Loading XML bean definitions from class path resource [helloMessage.xml]
 我是无参数构造Student@77cd7a0

2.0 静态工厂方法

当然需要一个静态方法还回其的对象。


public class Student {
        
    public static Student creatStudent()
    {
        return new Student();
    }
}

xml的配置如下

<beans>
<bean id="student" class="Student" factory-method="creatStudent"></bean>
</beans>

3.0 使用工厂方法实列化。这个需要工厂方法,先不提

占位

Bean的作用域

image.png

Bean的作用域默认为 singleton
通过如下

    public static void main(String[] args) {
        
        ApplicationContext app=new ClassPathXmlApplicationContext("helloMessage.xml");
        Student student=(Student) app.getBean("student");
        System.out.println(student);
        
        Student student1=(Student) app.getBean("student");
        System.out.println(student1);

    }

结果可以看出来

student被实列化Student@77cd7a0
Student@77cd7a0

如果scope设置成 scope

<bean id="student" class="Student" scope="prototype"></bean>

结果如下

student被实列化Student@5c7fa833
student被实列化Student@39aeed2f

五种作用域中,request、session和global session三种作用域仅在基于web的应用中使用

bean的生命周期

image.png image.png

参考文章Spring中bean的作用域与生命周期

和小伙伴,建了一个公众号,在摸索中,欢迎关注。搜索公众号:东风冷雪,英文:satan_master ,现在探索中。无所不有,包括生活,学习,娱乐。 三大板块。

公众号二维码.jpg
上一篇 下一篇

猜你喜欢

热点阅读