今天终于开始学习框架了,心情很不错,在力扣上看到一篇帖子,说是本科双非大二下已经刷了1000道力扣题了,同样的本科双非大二,我才刷了二十几道,我真特么是个废物,今天开始也得开始捡起算法来了,毕竟进大厂算法也是很重要的。
Spring框架今天只学了配置文件的方式,JavaSE复习了一下八大数据类型,别说,没看之前我还真不知道有哪几种基本数据类型,基础要慢慢开始打牢点了,加油加油加油!!!
Bean标签范围配置
scope:
singleton 默认值,单例的
prototype 多例的
request web项目中,创建一个Bean对象,存入到request域中
session web项目中,创建一个Bean对象,存入到session域中
global session 应用在Portlet环境
Spring的重点配置
<bean>标签
id属性:在容器中Bean实例的唯一标识,不允许重复
class属性:要实例化的Bean的全包名
scope属性:Bean的作用范围,常用是Singleton(默认)和prototype
<property>标签:属性注入
name属性:属性名称
value属性:注入的普通属性值
ref属性:注入的对象引用值
<list>
<map>
<properties>
<constructor-arg>有参构造标签
<import>导入其他的Spring的分文件
当scope的取值为singleton时
Bean的实例化个数:1个
Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例
Bean的生命周期:
1.对象创建:当应用加载,创建容器时,对象就被创建了
2.对象运行:只要容器在,对象一直活着
3.对象销毁:当应用卸载,销毁容器时,对象销毁
当scope的取值为prototype时
Bean的实例化个数:多个
Bean的实例化时机:当调用getBean()方法时实例化Bean
Bean的生命周期:
1.对象创建:当使用对象时,创建新的对象实例
2.对象运行:只要对象在使用中,就一直活着
3.对象销毁:当对象长时间不用时,被Java的垃圾回收器回收了
三种方式
<bean id="userDao" class="com.itcast.dao.impl.UserDaoImpl"></bean>
<bean id="userDao" class="com.itcast.factory.StaticFactory" factory-method="getUserDao"></bean>
<bean id="factory" class="com.itcast.factory.DynamicFactory"></bean>
<bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>
依赖注入
set方法
在xml配置文件中的service标签加入property标签,name为属性,ref为容器中的id
<property name="userDao" ref="userDao"></property>
构造注入
在xml配置文件中加入constructor-arg标签,name为参数
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
各种数据类型注入
基本数据注入
<property name="name" value="萧某"></property>
<property name="age" value="18"></property>
集合数据注入
<property name="stringList">
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
<property name="userMap">
<map>
<entry key="u1" value-ref="user1"></entry>
<entry key="u2" value-ref="user2"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="p1">xixixi</prop>
<prop key="p2">hehehe</prop>
<prop key="p1">lalala</prop>//会将上边的p1覆盖
</props>
</property>
引入其他配置文件
<import resource="applicationContext-user.xml"></import>