Spring中三种实例化bean的方法:
1)使用类构造器
  <bean id="orderService" class="cn.itcast.OrderService"/>
 
2)使用静态工厂方法实现实例化
  <bean id="orderService" class="cn.itacast.OrderFactory" factory-method="createOrder"/>
  public class OrderFactory{
       public static OrderServiceBean createOrder(){
             return new OrderServiceBean();
       }
  }
 3)使用实例工厂方法实例化
   <bean id="orderServiceFactory" class="cn.itcast.service.OrderFactory"/>
   <bean id="orderService" factory-bean="personServiceFactory" factory-method="createOrder"/>
   public class OrderFactory{
       public static OrderServiceBean createOrder(){
             return new OrderServiceBean();
       }
  }
  Bean的作用域:
  .singleton
    在每一个Spring Ioc容器中一个bean定义只有一个对象实例。默认情况下会在容器启动的时候初始化
    bean。但是我们可以指定Bean节点的lazy-init="true"来延迟初始化bean,这时候只有第一次使用
    bean的时候才会初始化bean。如:
    <bean id="xxx" class="类的全类名" lazy-init="true"/>
    如果想对所有bean都应用延迟初始化,可以在根节点beans设置defult-lazy-init="true",如下:
    <beans default-lazy-init="true"...>
  .prototype
     每次从容器获取的bean都是新的对象。
  .request
  .session
  .global session
 注入依赖对象
   1)基本类型对象注入
   <bean id="orderService" class="OrderServiceBean">
        <constructor-arg index="0" type="java.lang.String" value="xxx"/>  //构造器注入
        <property name="name" value="zhao"/>  //属相setter方法注入
   </bean>
   2)注入其他bean
   方法1:
        <bean id="orderDao" class="service.OrderDaoBean"/>
        <bean id="orderService" class="service.OrderServiceBean">
                  <property name="orderDao" ref="orderDao"/>
        </bean>
   方法2:使用内部bean(内部bean不能被其他bean使用)
         <bean id="orderService" class="service.OrderServiceBean">
                   <property name="orderDao">
                            <bean class="service.OrderDaoBean"/>
                   </property>
         </bean>
集合装配类型:
   public class OrderServiceBean {
              private Set<String> sets=new HashSet<String>();
              private List<String> lists=new ArrayList<String>();
              private Properties properties=new Properties();
              private Map<String,String> maps=new HashMap<String,String>();
 
              //setter和getter方法省略
              .....
   }
集合的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
 
   <bean id="order" class="cn.itcast.service.OrderServiceBean">
          <property name="lists">
                <list>
                        <value>hujingwei</value>
                        <value>wanglei</value>
                </list>
          </property>
 
          <property name="sets">
                  <set>
                          <value>set</value>
                  </set>
          </property>
 
         <property name="maps">
                 <map>
                         <entry key="hujingwei" value="26" />
                         <entry key="wanglei" value="25" />
               </map>
          </property>
 
         <property name="properties">
              <props>
                        <prop key="12">sss</prop>
             </props>
          </property>
 
</bean>
</beans>
 
自动装配
  在java代码中,使用@Autowired或@Resource注解方式进行装配,这两个注解的区别是:
  @Autowired默认是按类型装配,@Resource默认是按名称装配,当找不到名称匹配的时候
  才按照类型装配。
  @Autowired注解是按照装配类型进行装配的,默认情况下,依赖的对象必须存在,如果
  允许为null值,可以设置它的required属性为false。如果我们想按照名称装配,可以
  结合@Qualifier注解一起使用。如下:
  @Autowired
  @Qualifier("personOrderBean")
  private PersonDao personDao;

spring一些总结的更多相关文章

  1. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  2. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  3. Spring基于AOP的事务管理

                                  Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...

  4. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  5. 学习AOP之透过Spring的Ioc理解Advisor

    花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...

  6. 学习AOP之深入一点Spring Aop

    上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...

  7. 学习AOP之认识一下Spring AOP

    心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...

  8. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  9. Spring之旅(2)

    Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...

  10. Spring之旅

    Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...

随机推荐

  1. mysql 5.7安装步骤:

    .下载完成后解压: 3.在mysql要目录下创建 my.ini 文件,如上图,文件内容如下,basedir 和 datadir 修改为相应地址: [mysql] # 设置mysql客户端默认字符集 d ...

  2. git bash学习3 -简单杂乱知识点记录

    branch 新建分支 git init git add git commit 先新建一个仓库以及master 然后新建分支 git branch BranchName 然后切换分支 git chec ...

  3. LAMP 一键部署

    LAMP 一键部署 部署http #!/bin/bash ### global variables export lamp_repo=http://192.168.1.5/lamp/ export l ...

  4. 项目17-超详细“零”基础kafka入门篇

    分类: Linux服务篇,Linux架构篇   1.认识kafka 1.1 kafka简介 Kafka 是一个分布式流媒体平台 kafka官网:http://kafka.apache.org/ (1) ...

  5. win10.net 安装出问题0x800F70422

    因为安装ooracle数据库的时候需要用到.net但安装的时候出了0x800F70422, 随后就去网上查了下这个错出现的原因,发现是我之前把Windows自带的更新给禁用了 只要把它再开启就行了.

  6. HTML5/CSS3 第三章页面布局

    页面布局 1 页面组成 2 布局相关的标签 <div></div> 定义文档中的分区或节 <span></span> 这是一个行内元素,没有任何意义 & ...

  7. phpstudy iis版本 php4.4.5 和 php5.6.7目录权限问题

    开始用的php4.4.5  +iis 权限设置好了,切换成php5.6.7后目录没有了写入权限,各种百度后未能解决 php4.4.5  +iis  时 iis 匿名身份验证 用户是 IUSR    目 ...

  8. python3+openCV实现图片的人脸人眼检测,原理+参数+源代码

    上学时候用matlab学过一些图像处理的基础知识,当时课程作业是用haar实现人脸检测 but当时是心思根本不在图像处理上,so找了个同学帮忙做的,自己没上心 然鹅天道好轮回,现在捡起来了原来的算法一 ...

  9. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码

    题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...

  10. hihocoder1015 kmp算法

    #1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...