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. nginx负载均衡集群(二)

    nginx负载均衡配置实战 一.配置基于域名虚拟主机的web节点 web02和web01做同样的操作,nginx配置文件如下: [root@web01 conf]# cat nginx.conf wo ...

  2. Ajax基础知识梳理

    Ajax用一句话来说就是无须刷新页面即可从服务器取得数据.注意,虽然Ajax翻译过来叫异步JavaScript与XML,但是获得的数据不一定是XML数据,现在服务器端返回的都是JSON格式的文件. 完 ...

  3. 14.VUE学习之-v-if v-else-if语法在网站注册中的实际应用讲解

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  4. ecshop里提出来的js常用函数

    目录 Utils.js jquery.listTable.js 使用例子: ecshop里提出来的js常用函数 Utils.js /* $Id : utils.js 5052 2007-02-03 1 ...

  5. 如何使用pyinstaller打包32位的exe

    说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位.而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容.网上查询发现,简单(可能不方便 ...

  6. JAVA连接数据库,并写入到txt文件

    package Hello; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;impor ...

  7. Thread 小总结

    目录 线程概述 线程的定义 线程的启动 线程的状态 线程的方法属性 1.线程概述 线程是一个程序的多个执行路径,执行调度的单元,依托于进程的存在.线不仅可以共享进程的内在,而且还拥有一个属于自己的内存 ...

  8. 实验一 查看CPU和内存,用机器指令和汇编指令编程

    (1):使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内存的变化. 机器码        汇编指令 b8 20 4e     mov ax,4E20H 05 ...

  9. IOS开发学习笔记034-UIScrollView-xib实现分页

    通过xib实现分页功能的封装 1.首先实现xib UIView 的尺寸为300*130,因为准备的图片为600*260. scrollView属性设置如下: 2.新建一个和xib同名的类 2.1 类方 ...

  10. Spring boot 上传文件大小限制

    1.spring boot 1.x 版本 application.properties 文件中 位置在(resources下) spring.http.multipart.maxFileSize = ...