文章目录

  • 1. Spring程序开发步骤
  • 2. Spring配置文件
    • 2.1 Bean标签基本配置
    • 2.2 Bean标签范围配置
    • 2.2 Bean生命周期配置
    • 2.3 Bean实例化三种方式
    • 2.4 Bean的依赖注入分析
    • 2.5 依赖注入概念
    • 2.6 Bean的依赖注入方式
    • 2.7 Bean的依赖注入的数据类型
    • 2.8 引入其他配置文件(分模块开发)
    • 2.9 spring的重点配置
  • 3. Spring相关API
    • 3.1 ApplicationContext的继承体系
    • 3.2 ApplicationContext的实现类
    • 3.3 getBean()方法的使用
  • 4. [Spring配置数据源、注解开发、整合Junit](https://blog.csdn.net/weixin_45131762/article/details/115443155)

1. Spring程序开发步骤


步骤一:

  1. 用到了框架所以要导入Spring的Maven坐标

  2. 编写UserDAO的接口和UserDAOImpl的一个实现(创建Bean)

  3. 创建Spring核心配置文件(applicationContext.xml)

  4. 在Spring核心配置文件中配置UserDAOImpl(规定bean标签的id和class)

  5. 使用Spring的API获得Bean实例

2. Spring配置文件

2.1 Bean标签基本配置

  1. 用于配置–对象交由Spring来创建
  2. 默认情况下调用的是无参构造器,如果没有无参构造器则不能创建成功

基本属性:

  • id:Bean实例在Spring容器中的唯一标识
  • class:Bean的全限定名

2.2 Bean标签范围配置

  1. scope是singleton时,会在加载配置文件的时候就创建好了Bean,之后的获取都是获取同样的bean实例(scope默认是单例模式的)
  2. scope是prototype时,加载配置文件时不会创建Bean实例,而是在调用getBean()方法时不断的获取新的Bean实例
  3. 在UserDaoImpl类中重写无参构造器,加上一个打印语句,在控制台查看打印语句



2.2 Bean生命周期配置

  • init-method:指定类中的初始化方法名称
  • destroy-method:指定类中销毁方法名称

2.3 Bean实例化三种方式

  • 无参构造方法实例化

  • 工厂静态方法实例化

  • 工厂实例方法实例化

2.4 Bean的依赖注入分析



在容器内部将Dao给Service是如何给的呢?

2.5 依赖注入概念

依赖注入:是Spring核心IOC的具体实现

在编写程序时,通过控制反转,把对象的创建交给Spring,但是代码中不可能出现没有依赖的情况。IOC解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。

那这种业务层和持久层的依赖关系,在使用Spring之后,就让Spring来维护了。
简单说,就是坐等框架把持久层对象传入业务层,而不是我们自己去获取。

2.6 Bean的依赖注入方式

怎么把UserDao注入到UserService内部呢?

  • 构造方法

  • setter方法



    注意:如果说按照下面的这种方式的话会报空指针异常:

    原因:因为此时的这个service不是从容器中拿的,是自己创建的,没有对userDao属性进行赋值,而之前的service都是从容器中拿的,容器中已经在读取配置文件的时候进行了属性的赋值
    补充:

2.7 Bean的依赖注入的数据类型

上面的操作都是注入的引用Bean,除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入。

  1. 普通数据类型:

  2. 集合


2.8 引入其他配置文件(分模块开发)

将部分配置拆解到其他配置文件中,而在Spring主配置文件中通过import标签加载
<import resource="applicationContext-xxx.xml"/>

2.9 spring的重点配置

3. Spring相关API

3.1 ApplicationContext的继承体系

ApplicationContext:接口类型,代表应用上下文,可以通过其实例获取Spring容器中的Bean对象

3.2 ApplicationContext的实现类

  1. ClassPathXmlApplicationContext从类的根路径下加载配置文件(推荐使用)
  2. FileSystemXmlApplicationContext从磁盘路径上加载配置文件
  3. AnnotationConfigApplicationContext当使用注解配置容器对象时,需要使用此类来创建spring容器。用它来读取注解

3.3 getBean()方法的使用

4. Spring配置数据源、注解开发、整合Junit

spring配置文件相关推荐

  1. 转 spring配置文件

    spring配置文件 pom文件: <properties><commons-lang.version>2.6</commons-lang.version>< ...

  2. java spring 配置文件_[Java教程]Spring配置文件

    [Java教程]Spring配置文件 0 2016-03-19 00:00:08 Spring配置文件是集成了Spring框架的项目的核心,引擎从哪里开始,中间都执行了哪些操作,小谈一下它的执行流程. ...

  3. 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常...

    现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumb ...

  4. 通过Spring配置文件中bean中的property赋值

    基本数据类型赋值-通过spring配置文件中bean中的property 扩展-以此方式可以通过配置为连接数据的属性赋值 1.如果是基本数据类型,可以通过setter方法为对象中的属性设置初始值,应用 ...

  5. spring配置文件import标签中使用${}占位符获得配置文件的属性值

    2019独角兽企业重金招聘Python工程师标准>>> 一般情况下我们在Spring的配置文件中使用<import>标签是这样的,<import resource= ...

  6. (转)使用Spring配置文件实现事务管理

    http://blog.csdn.net/yerenyuan_pku/article/details/52886207 前面我们讲解了使用Spring注解方式来管理事务,现在我们就来学习使用Sprin ...

  7. 三大框架开发时,spring配置文件出现异常

    在最近利用三大框架进行项目开发时,spring配置文件里出现了一个橘***的双向箭头,鼠标放上去,会提示你advised by  org.springframework.transaction.int ...

  8. XML配置文件的命名空间与Spring配置文件中的头

    一直以来,写Spring配置文件,都是把其他配置文件的头拷贝过来,最多改改版本号,也不清楚哪些是需要的,到底是干嘛的.今天整理一下,拒绝再无脑copy. 一.Spring配置文件常见的配置头 < ...

  9. spring配置文件中分别使用多个properties文件

    spring配置文件中分别使用多个properties文件 在使用spring时,有时候需要为了模块配置方便有时候需要针对不同的模块建立不同的applicationContext的配置文件,然后在对应 ...

  10. Spring配置文件详解三:Spring声明式事务管理

    1.声明式事务管理 Spring提供了声明式事务管理,这是通过Spring AOP实现的. 原理:Spring中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制, ...

最新文章

  1. 详解math.isclose()用法
  2. OpenVINO FPS也可以达100帧
  3. 网络营销专员浅析在网络营销中网站关键词对网站流量获取有何影响?
  4. Google Guava v07范例
  5. 如何运行 PPAS上的pgpool-II
  6. 在c#中使用全局快捷键
  7. Vue项目开发相关问题总结
  8. 达梦数据库工程师培训实战教程(主备集群、读写分离、共享集群)
  9. Excel绘制双坐标抽图表
  10. 缩写月份单词python_月份的英语单词
  11. PID调节参数的作用
  12. 万恶的prototype
  13. c语言用户标识符不能描述常量,计算机等级二级C语言考试选择题库
  14. Android内嵌H5,安卓手机返回键点击无反应、苹果手机返回键正常情况解决方案
  15. 真香!安利 6 个 Python 数据分析神器
  16. 照片怎么压缩变小?如何把照片压缩到20K?
  17. JSONObject、JSONArray
  18. OpenGL ES 2.0 for Android教程(九):添加触摸反馈
  19. Sharding JDBC(四) 分片策略一:标准分片策略StandardShardingStrategy
  20. 如何从0开始在鸿蒙OS中制作一个APP!

热门文章

  1. 机器学习begain
  2. 《测绘管理与法律法规》——基础测绘管理
  3. 微信小程序动画(一):样式
  4. GoodNotes5下载之使用教程
  5. 服务器渲染与客户端渲染
  6. 巨头纷纷适配数字人民币使用场景,支付体系升级再下一城?
  7. Tinker edge R 烧写 Debian 10 V2.0.5 镜像
  8. 广州市有没有学计算机软件编程,广州软件学院,推荐给中低分段想学编程的考生...
  9. 区块链技术有哪些应用领域?
  10. vivo2020届春季校园招聘手机屏幕解锁模式