Spring学习笔记-第一天:Spring项目创建/配置文件及依赖注入/相关API
一、Spring项目创建过程
- 导入坐标:设置依赖
- 创建Bean: 如:创建userDao和userDaoImpl
- 创建applicationContext.xml(约定俗成)
- 在配置文件中配置 :在<bean>标签中配置 id
- 创建对象getBean 提供当前bean的id
二、Bean标签范围
-
singleton 默认 单例
-
prototype 多例
-
request
-
session
-
global session
主要使用singleton和prototype,其中他们在创建过程中有区分
若使用singleton,则在加载配置文件时创建Bean的实例化个数为一个
ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");
若设置成prototype,则在每次getBean时都创建一个
Bean的生命周期:对象创建,对象运行,对象销毁
singleton 应用加载时即创建 prototype当使用时创建前者一直活着,后者不用时被gc回收
Bean生命周期配置
init-method:制定类中的初始化方法名称
destroy-method:制定类中销毁方法名称
Bean实例化三种方式
- 无参构造方法实例化
- 工厂静态方法实例化
- 工厂实例方法实例化
静态可以直接调用,动态的需要先生成工厂对象bean,再设一个bean调用工厂对象
三、Bean依赖注入
IOC的具体体现。
控制反转:把对象的创建交给了Spring。IOC解耦只是降低依赖关系。业务层和持久层的依赖关系,用Spring来维护。
service需要内部dao,需要dao依赖注入
将UserDao注入到UserService
- 构造方法
- set方法
Set方法实现依赖注入
1.设置bean id,class地址,再通过property设置依赖注入,如
<bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
2.p命名空间注入
修改并添加p标签
xmlns="http://www.springframework.org/schema/beans"->xmlns:p="http://www.springframework.org/schema/p" 后可以使用p属性 p:
有参构造注入
在service中,通过引用private,设置Constructor
set注入是引入setter,构造注入是选择Constructor
在bean中 constructor中引用
Bean依赖注入的数据类型
- 普通数据类型:<property>中不用ref,而是用value
- 其他数据类型,集合,列表,图等,既不用value也不用ref,而是进内部子标签
<property name="strList">
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
<value>ddd</value>
</list>
</property>

引入其他配置文件
实际开发中,Spring配置很多,所以可以将部分配置拆解到其他配置文件中,而在Spring主配置文件 通过import标签进行加载。

可以按功能分,也可以按dao,service这样分,看情况
小总结:Spring的重点配置
<bean>标签
id属性:在Bean实例的唯一标识
class属性:要实例化的Bean的全限定名(地址)
scope属性:Bean的作用范围 singleton prototype 创建时机
<property> 依赖注入
name属性:要注入的属性名称
value属性:引用的普通属性值
ref属性:注入的对象引用值
<list>标签
<map>标签
<constructor-arg>标签,构造注入,内部和上面一样
<improt>标签:导入其他的Spring配置文件
四、Spring的相关API
applicationContext:接口类型,代表应用上下文,可以获得其实例获得Spring容器中的Bean对象
ApplicationContext的实现类
1. ClassPathXmlApplicationContext:classpath-类加载路径Xml代表加载的类型,再应用上下文,从类的根路径下加载配置文件
2. FileSystemXmlApplicationContext:从磁盘路径上加载配置文件,配置文件可以在磁盘任意位置
对比:
ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml"); ApplicationContext app=new FileSystemXmlApplicationContext("E:\\ideaWorkSpace\\Spring\\itheima_spring_ioc\\src\\main\\resources\\applicationContext.xml");
3. AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要使用此类类创建spring容器。它用来读取注解。
getBean()方法使用。两种使用getBean的方式
UserService userService = (UserService) app.getBean("userService");根据id进行获取
UserService userService = app.getBean(UserService.class);根据类型进行获取
若存在两个相同类型的,前者可以区分开,但后者不能,运行会报错
Spring的重点API
1. 怎么创建应用上下文对象(三种)
2. getBean怎么用(两种)
今日idea快捷键
setting:ctrl+alt+s
ProjectStructure:ctrl+shift+alt+s
generate:alt+insert
输出:sout;
快速生成返回值:alt+enter

浙公网安备 33010602011771号