IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring 小白教程_Day2 -> 正文阅读

[Java知识库]Spring 小白教程_Day2

目标: 1.了解掌握spring的xml文件配置的几种方式

? ? ? ? ? ?2.对注解开发进行一定程度的理解(Day3的内容)

开发步骤:

1.导入相关依赖

2.创建接口及其实现类

3.编写核心配置文件

4.装配bean? ?,使用几种方式

5.验证各种bean装配方式的效果

IOC的基本原理就是使用java的反射机制,通过反射来获取对象,class.forName("全包名")? 会返回一个实例对象

其实际反射的一系列代码都被spring进行封装了一层,在spring的getbean()方法的类中进行封装

Spring bean标签的范围配置

Scope:指对象的作用范围,取值如下:

singleton? ?默认值,单例的? ?(即? 通过反射获得的对象是同一个对象)

protetype? 多例的? ? ? ? ? ? ? ? ? (通过反射获得的对象是不同的对象)

request? ? web项目中,Spring 创建一个bean的对象,将对象存入到Request域中

session? ?web项目中,Spring创建一个bean的对象,将对象存入到session域中

global session? web项目中,应用在portlet环境,如果没有Portlet环境,那么globalsession相当于session

测试 --------在xml文件中给装配的bean配置一个scope? ?分别是singleton? 和 protetype??

然后在test中分别打印通过反射获得的对象的地址? ??

就会发现,配置了singleton的,获取到的对象的地址是相同的,表明是同一个实例,而

配置了protetype的,打印出的对象地址各不相同,表明是多例的

附图:

?

?

?

同时,在使用singleton模式时,对象的创建是在加载配置文件的时候就进行的

?下图可看见当程序走到getBean()时,对象反射还没有进行,但是却已经调用了对象的无参构造

?

表明singleton模式在加载配置文件的时候进行了创建,反之,这里也配置了protetype模式,但是其对象却没有在加载配置文件时候进行创建,只有在进行反射时才创建对象

bean的生命周期

init-method? :指定类中的初始化方法 (用于对象创建完毕时想要初始化的数据)

destory-method :指定类中销毁方法名称(用于对象销毁之前用来执行相关的销毁工作)

?bean实例化的三种方式:

1:无参构造方法实例化----以上的所有测试都是无参构造(也是常用)

2:工厂静态方法实例化(不常用--了解即可)

3:工厂实例方法实例化(不常用--了解即可)

Spring配置文件的依赖注入

一:dao层的对象和service层的对象都存在于Spring容器中,但其实web层最终只是使用Service层的对象 ,不需要使用dao层的对象,总之就是service层要获取到dao层对象,使用其对象的方法来实现service的方法,所以可以在Spring容器中将dao层的对象组装到service内部完成的操作------依赖注入

内部组装方法:

一:set()方法

二:构造方法

使用set方法进行依赖注入:

一:将要被注入的对象设置为注入类的一个属性,并且要设置set()方法

二:要被注入对象要在xml文件中装配bean,放入spring容器中,同时注入类也要

装配bean,让二者同时存在Spring容器中

三,在注入类的bean中配置<property name=""? ref="">标签,同于将对象进行set进去。

依赖注入完成,全程只需要关注xml配置文件

由于字标签写法繁琐,所以使用p命名空间注入

1:引入p命名空间标识----

xmlns:p="http://www.springframework.org/schema/p"

?

2:使用p:? ?ref=""进行引入对象进行set? ?

依赖注入完成

2:有参构造方法注入

?

?使用<constructor-arg name="" ref="'>标签进行注入

当然--以上都是引用bean对象,普通数据类型和集合数据类型也一样可以引入

普通数据:

?

?

?成功:

?

特殊数据类型注入: List? Map

采用set()方法注入:

一:要在注入类将相应的数据类型设置为属性,并且生成set方法

?二:在xml配置文件中将要使用到的对象全部都装配到bean中:

?

?三:在xml文件中使用<property name ="">子标签进行配置

? ? ? ? ? ? ? ?如果是List,则还需要在子标签下创建<list>子标签

再在其下创建<value>子标签 数据写在此标签下

? ? ? ? ? ? ? ? 如果是map,需要在其子标签下创建map子标签,

再在其下创建<entry key="" value=''/value-ref="">子标签

写入数据

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:31:58  更:2021-09-22 14:33:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:22:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码