第二章 spring

目录

前言

1,Bean基础配置(id和class)

1)bean的别名配置

1.1首先我们先新建一个maven项目(搭建的内容和前面的案例一样)

 1.2,打开spring的配置文件applicationContext.xml

1.3 根据名称容器获取bean对象

1.4运行结果 

2)bean的作用范围space配置 

1.验证IOC容器中的对象是否为单例

2.bean(单例和非单例)

(1)在Spring的配置文件中,修改的scope属性,并将scope设置为singleton

(2)在Spring的配置文件中,修改的scope属性,并将scope设置为prototype


前言

在第一章的时候,我们初步认识了Spring,了解其系统架构 以及 IOC(控制反转)的概念,IOC容器,Bean和DI(依赖注入),并且写了两个案例去理解,详细可以看看前一天发布的文章。

文章链接:第一章 Spring-CSDN博客

1,Bean基础配置(id和class)

1)bean的别名配置

1.1首先我们先新建一个maven项目(搭建的内容和前面的案例一样)

内容如下:

 1.2,打开spring的配置文件applicationContext.xml

 <!--name:为bean指定别名,别名可以有多个,使用逗号,分号,空格进行分隔-->
    <bean id="bookService" name="service1 service bookEbi" class="com.hw.service.impl.BookServiceImpl">
        <property name="bookDao" ref="bookDao"></property>
    </bean>

    <!--scope:为bean设置作用范围,可选值为单例singloton,非单例prototype-->
    <bean id="bookDao" class="com.hw.dao.impl.BookDaoImpl"/>

</beans>

说明:Ebi全称Enterprise Business Interface,翻译为企业业务接口  

1.3 根据名称容器获取bean对象

public class Test {
    public static void main(String[] args) {
        //读取spring的配置文件,创建出IOC容器,并把所有的Bean对象创建出来放到IOC容器中去
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取service层对象
        //Object bookService = context.getBean("bookService");
        //强制转换
        //此处根据bean标签的id属性和name属性的任意一个值来获取bean对象
        BookService bookService = (BookService) context.getBean("bookService");
        bookService.save();

    }
}

1.4运行结果 

运行结果:book service save ...

注意: bean依赖注入的ref属性指定bean,必须在容器中存在

假如不存在,则会发生下列情况:

报错 :No bean named 'bookService666' available(“service666”的bean不可用)

2)bean的作用范围space配置 

1.验证IOC容器中的对象是否为单例

public class Test {
    public static void main(String[] args) {
        //读取spring的配置文件,创建出IOC容器,并把所有的Bean对象创建出来放到IOC容器中去
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");
       
        BookDao bookDao1 = (BookDao) context.getBean("bookDao");
        BookDao bookDao2 = (BookDao) context.getBean("bookDao");
        System.out.println(bookDao1);
        System.out.println(bookDao2);
    }
}

发现,控制台输出的两个对象地址相同

结论:默认情况下,spring创建出来的bean对象都是单例的

2.bean(单例和非单例)

(1)Spring的配置文件中,修改<bean>scope属性,并将scope设置为singleton

<bean id="bookDao" class="com.hw.dao.impl.BookDaoImpl" scope="singleton"/>

结果:打印出来的地址相同

 

(2)Spring的配置文件中,修改<bean>scope属性,并将scope设置为prototype
 

 

<bean id="bookDao" class="com.hw.dao.impl.BookDaoImpl" scope="prototype"/>

运行结果:两个对象的地址不同了

博主累了,剩下的看心情再更新吧,哥们真不想敲代码了。。。。。。。。。。

  • 25
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值