zoukankan      html  css  js  c++  java
  • spring bean的作用域和自动装配

    1 Bean的作用域

    • l  singleton单列:整个容器中只有一个对象实例,每次去访问都是访问同一个对象  默认是单列
    • l  prototype原型: 每次获取bean都产生一个新的对象,比如Action
    • l  request:每次请求时创建一个新的对象
    • l  session:在会话的范围内是一个对象,http那个session
    • l  global session:只在portlet下有用,表示application
    • l  application:在应用范围内有效

    注意:配置action的时候注意设置bean作用域为scope=”prototype”,其他不常用。

    2 Bean自动装配---简化spring配置文件

    在配置bean时,可以配置bean的autowire属性,用于指定装配类型

    //下面代码中的类的创建见spring IOC

    // no不使用自动装配
    //byName根据名称(set方法名首字母小写)去查找相应的bean,如果有则装配上去
    <bean name=userDao" class="com.silvan.dao.impl.UserDaoOracleImpl" />
    <bean name="userService" class="com.silvan.service.impl.UserServiceImpl" autowire="byName"/>
    //使用bean
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    // byType根据类型进行自动装配  不用管bean的id或name 但是同类型的bean只能有一个  建议慎用。其中UserDaoMySqlImpl属于UserDao子类型,所以会被自动装配
    <bean class="com.silvan.dao.impl.UserDaoMySqlImpl"/>
    <bean name="userService" class="com.silvan.service.impl.UserServiceImpl" autowire="byType"/>
    //根据类型判断使用哪个bean
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    } 

    可以配置全局的自动装配类型,在头部default-autowire

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName">

    推荐不使用自动装配,而使用annotation。

  • 相关阅读:
    JavaScript类属性
    JavaScript实现通过的集合类
    Asp.net mvc自定义Filter简单使用
    [转] js实现html table 行,列锁定
    学习笔记:HTML5 Canvas绘制简单图形
    学习笔记:Asp.Net MVC更新部分页面
    Dom随手记
    页面刷新或关闭前警告
    C# 创建WebServices及调用方法
    常用Web Service汇总(天气预报、时刻表等)
  • 原文地址:https://www.cnblogs.com/zhouyeqin/p/7207665.html
Copyright © 2011-2022 走看看