前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring中bean的知识点1.0

spring中bean的知识点1.0

作者头像
热心的社会主义接班人
发布2018-09-30 10:35:33
3800
发布2018-09-30 10:35:33
举报
文章被收录于专栏:cs

3种Beans的实列法的方式

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

1.0 使用类构造器实列化

代码语言:javascript
复制
public class Student {
        
    public Student()
    {
        System.out.print(" 我是无参数构造");
    }

}

xml的配置

代码语言:javascript
复制
<beans>
<bean id="student" class="Student"></bean>
</beans>

结果如下

代码语言:javascript
复制
信息: Loading XML bean definitions from class path resource [helloMessage.xml]
 我是无参数构造Student@77cd7a0

2.0 静态工厂方法

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

代码语言:javascript
复制
public class Student {
        
    public static Student creatStudent()
    {
        return new Student();
    }
}

xml的配置如下

代码语言:javascript
复制
<beans>
<bean id="student" class="Student" factory-method="creatStudent"></bean>
</beans>

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

占位

Bean的作用域

image.png

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

代码语言:javascript
复制
    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);

    }

结果可以看出来

代码语言:javascript
复制
student被实列化Student@77cd7a0
Student@77cd7a0

如果scope设置成 scope

代码语言:javascript
复制
<bean id="student" class="Student" scope="prototype"></bean>

结果如下

代码语言:javascript
复制
student被实列化Student@5c7fa833
student被实列化Student@39aeed2f

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

bean的生命周期

image.png

image.png

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.09.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档