1. Spring概述

    • 概述
      1. Spring是一个开源框架
      2. 为企业级开发而生
      3. 是一个IOC[DI]和AOP容器框架
      4. 有许多优良特性
        1. 非侵入式:基于Spring开发的应用中的对象可以不依赖Spring的API。
        2. 依赖注入:DI--Dependency Injection,IOC是最经典实现。
        3. 面向切面编程:AOP
        4. 容器:Spring管理应用对象的生命周期。
        5. 组件化:Spring实现了使用简单的组件合成一个复杂的应用。使用XML和注解来组合这些对象。
        6. 一站式:在IOC和AOP的基础上可以整合各种企业级应用的开源框架和优秀的第三方类库。(实际上spring自身也提供了表示层SpringMVC和持久层的SpringJDBC)
      5. Spring模块

          

    • 第一个spring
      1. 创建普通java项目,新建lib,添加jar包
        1. bean\context\core\expression  还有log包
        2. 在src目录下创建source folder,命名为config,config下新建applicationContext.xml

         2.创建com.ruixing.bean包,并穿件类

            1.Employee.java

              

            2.Dept.java

              

         3.在pplicaltionContext.xml里面配置对象

            1.通过set注入属性

              

            2.通过构造器注入属性值       当name属性省略时,可以通过index属性指定为哪个属性赋值

              

            3.为list类型属性赋值

              

            4.为map属性赋值  entry标签,确定一组键值对

               

             5.属性值为null

                <property name="属性名">

                  <null></null>

                </property>
         4.测试类
public class TestSpring{
//根据配置文件创建容器对象
ApplicationContext context = new ClassPathXmlApplicationContext("application"); //方式1:根据<bean>的id值获取对象,返回类型是Object,需要强转
Employee e1 = (Employee) context.getBean("e1");
System.out.println("根据id获取:"+e1); //方式2:根据对象的类型获取,但是要求对象只有唯一一个
Employee e2 = context.getBean(Employee.class);
System.out.println("根据类型获取:"+e2); //方式3:根据id+类型 常用
Employee e3 = context.getBean("e1", Employee.class);
System.out.println("根据id和类型获取:"+e3);
}

2.FactoryBean(注意:BeanFactory是Spring的顶层接口,面向开发spring的开发人员,并不是使用spring的开发者)

  1.Spring中有两种bean

     * 普通bean

     * 工厂bean:即FactoryBean

   2. 普通bean和工厂bean的区别

     * 普通bean就是该类的一个实体对象

     * 工厂bean返回的是:getObject()返回的对象

  3. 工厂bean必须实现org.springframework.beans.factory.FactoryBean接口

    

3.bean的作用域

 类别    
说明
singleton     默认的 在SpringIOC容器中仅存在一个Bean实例,也就是单例
propertype 多例,每次调用getBean()都会返回一个新的实例
request 每个HTTP请求,都会创建一个新的Bean
session 一次会话中共享一个bean,不同的Http session 使用不同的bean

注意:当bean为单例的时候,会在容器初始化时,初始化单例的bean。而propertype时,IOC容器获取实例时,才会创建bean实例对象。

4.  IOC容器的结构

    

spring-01的更多相关文章

  1. Spring 01基础

    一.Spring作用:管理项目中各种业务Bean(service类.Dao类.Action类),实例化类,属性赋值 二.Spring IOC(Inversion of Control )控制反转,也被 ...

  2. Spring → 01:概述

    一.了解Spring发展 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Dev ...

  3. Spring 01 概述

    简介 Spring 是开源的轻量级 J2EE 框架 我们常说的 Spring 实际上是指 Spring Framework,它是 Spring 家族中的一个重要分支. 官方文档 https://doc ...

  4. Spring 01: Spring配置 + IOC控制反转 + Setter注入

    简介 Spring框架是一个容器,是整合其他框架的框架 他的核心是IOC(控制反转)和AOP(面向切面编程),由20多个模块构成,在很多领域都提供了优秀的问题解决方案 特点 轻量级:由20多个模块构成 ...

  5. Spring 02: Spring接管下的三层项目架构

    业务背景 需求:使用三层架构开发,将用户信息导入到数据库中 目标:初步熟悉三层架构开发 核心操作:开发两套项目,对比Spring接管下的三层项目构建和传统三层项目构建的区别 注意:本例中的数据访问层, ...

  6. c# 使用OracleParameter,同时使用replace函数

    也算不上是手误吧,这个问题竟然困扰了我那么多天,就是更新代码的时候,使用replace,但是oracle在.net下竟然是不支持汉字,所谓使用类似update x set y='m' where y= ...

  7. Java基础(十)——枚举与注解

    一.枚举 1.介绍 枚举类:类的对象只有有限个,确定的.当需要定义一组常量时,强烈建议使用枚举类.如果枚举类中只有一个对象,则可以作为单例模式的实现. 使用 enum 定义的枚举类默认继承了 java ...

  8. Spring知识点回顾(01)Java Config

    Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...

  9. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

    下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the ...

  10. spring mvc注解版01

    spring mvc是基于servlet实现的在spring mvc xml版中已经说过了,注解版相较于xml版更加简洁灵活. web项目的jar包: commons-logging-1.1.3.ja ...

随机推荐

  1. Oracle的条件in中包含NULL时的处理

    我们在写SQL时经常会用到in条件,如果in包含的值都是非NULL值,那么没有特殊的,但是如果in中的值包含null值(比如in后面跟一个子查询,子查询返回的结果有NULL值),Oracle又会怎么处 ...

  2. 通俗易懂的php多线程解决方案

    我们在做项目的时候,有些需求,特别是数据的响应处理需要花费大量的时间,由于php是一个短生命周期的脚本语言,到了默认的30秒,php的数据处理还没完成,php的生命周期就结束了.这时需要使用异步并发处 ...

  3. Python:Day46 Javascript DOM

    history对象: History 对象包含用户(在浏览器窗口中)访问过的 URL.窗口之间是相互独立的. <input type="button" onclick=&qu ...

  4. day 06 元组、字典、集合的定义及其方法

    一:元组 1.定义:在()内用多个逗号分隔开多个任意类型的元素 元组用来记录多个值,当值没有改变的需求时,用元组更合适. 元组是有序的.不可变的(虽然数据不可变,但是数据的数据是可以改变的) t = ...

  5. CentOS 软件安装(yum 和 rpm)

    CentOS 软件安装方法 常用的分为两种, - yum install 安装包名 : 类似于 Debian 的 “ apt-get install 安装包名 “ - rpm -i rmp文件名 :类 ...

  6. AI SSD目标检测算法

    Single Shot multibox Detector,简称SSD,是一种目标检测算法. Single Shot意味着SSD属于one stage方法,multibox表示多框预测. CNN 多尺 ...

  7. 抛弃配置后的Spring终极教程

    一:前言 Spring 有XML配置和注解两种版本,我个人非常喜欢使用注解,相当热衷Spring boot! 对于Spring,核心就是IOC容器,这个容器说白了就是把你放在里面的对象(Bean)进行 ...

  8. 提取jedis源码的一致性hash代码作为通用工具类

    一致性Hash热点 一致性Hash算法是来解决热点问题,如果虚拟节点设置过小热点问题仍旧存在. 关于一致性Hash算法的原理我就不说了,网上有很多人提供自己编写的一致性Hash算法的代码示例,我在跑网 ...

  9. Windows Community Toolkit 4.0 - DataGrid - Part02

    概述 在上面一篇 Windows Community Toolkit 4.0 - DataGrid - Part01 中,我们针对 DataGrid 控件的 CollectionView 部分做了详细 ...

  10. Final Destination II -- 矩阵快速幂模板题

    求f[n]=f[n-1]+f[n-2]+f[n-3] 我们知道 f[n] f[n-1] f[n-2]         f[n-1]  f[n-2]  f[n-3]         1    1    ...