Spirng学习笔记之bean和BeanFactory(二)

1、Spring允许通过一个String数组指定多个配置文件,如前面所讲;Spring还允许我们通过将多个配置文件引入到一个文件中,进行配置文件集成。如以beans2.xml中引入com/test/beans1.xml为例:<import resource="classpath=com/test/beas1.xml">,这样在启动Spring容器的时候就只要指定一个配置文件,就能启动所有配置文件了。
2、bean作用域:
singleton:单实例存在,获取和返回的都是同一个实例
prototype:每次获取返回的都是新的实例
request:每次http请求都会返回一个新的bean实例,仅适用于WebApplicationContext环境
session:同一个http共享同一个bean实例,不懂http使用不同的bean实例,仅适用于WebApplicationContext环境
globalSession:同一个全局Session共享同一个bean,仅适用于WebApplicationContext环境
3、Spring 2.0以后开始引入基于注解配置方式,示例:

import org.springframework.stereotype.Component;
//通过Repository定义一个DAO的Bean
/*******使用@Component注解在UserDAO类声明处对类进行标注,便可以使其被Spring容器识别,自动将其转换为容器管理     bean,等效于:<bean id="userDAO" class="UserDAO"/>*******/
@Component("userDAO");
public class UserDAO{
    ......
}

除了@Component外,还有另外三个功能基本等效的注解:
@Repository:用于对DAO实现类进行标注;
@Service:用于对Service实现类进行标注;
@Controller:用于对Controller实现类进行标注。
4、Spring 2.5以后还可以通过context命名控件,提供通过扫描类包以应用注解定义bean的方式,如示例:

<?xml version="1.0" encoding="UTF-8"?>
<!--生命context命名空间-->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.3w.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/contex/spring-context-3.0.xsd">
<!--扫描类包以应用注解定义的bean-->
<!--base-package就是要扫描的基类包,Spring容器会获取这个基类里扫描到的用注解定义的bean-->
<context:component-scan base-package="PackageToScan"/>

如果仅希望扫描特定的类,可以使用resource-pattern属性过滤特定的类:

<!--注意resource-pattern仅能按资源名称对基包中的类进行过滤,如果要过滤其他情况,可以使用<context:component-scan>的子元素进行过滤-->
<context:component-scan base-package="PackageToScan" resource-pattern="SpecifiedClasses"/>

5、其他注入注解:
@Autowired:默认按类型匹配方式,在容器查找匹配的bean,当仅有一个匹配的bean时,Spring将其注入到@Autowired标注的变量中。如果希望Spring即使找不到匹配的Bean完成注入也不要抛出异常,就可以使用@Autowired(required=false)进行注解。
@Qualifier:可以限定bean的名称。
@Scope指定bean的作用范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值