Spring配置文件
Bean标签
基本属性
1 id: Bean实例在Spring容器中的唯一标识
2 class:Bean的全限定名称
Bean标签范围配置
1 scope:对象的作用范围
取值范围
singleton:默认的,单例的
Bean的实例化个数:1个
Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean示例
Bean的生命周期:
对象创建:当应用加载,创建容器时,对象就被创建了
对象运行:只要容器在,对象一直活着
对象销毁:当应用卸载,销毁容器时,对象被销毁
prototype:多例的
Bean的实例化个数:多个
Bean的实例化时机:当调用getBean()方法时实例化Bean
Bean的生命周期:
对象创建:当使用对象时创建
对象运行:只要对象在使用,对象一直活着
对象销毁:对象长时间不用时,被java的垃圾回收器回收
Bean的生命周期配置
1 init-method:指定类中初始化方法名称
2 destroy-method:指定类中销毁方法名称
Bean实例化的三种方式
1 无参构造方法实例化
<bean id="userDao" class="com.zl.impl.UserDaoImpl"></bean>
2 工厂静态方法实例化
<bean id="userDao" class = "com.zl.factory.StaticFactory" factory-method="getUserDao""></bean>
3 工厂实例方法实例化
<bean id="factory" class = "com.zl.factory.DynamicFactory" "></bean>
<bean id="userDao" factory-bean="factory" factory-method="getUserDao"/>
依赖注入
1 set (name是set方法后缀名,而且第一个字母小写)
<bean id="userService" class="com.zl.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
p命名空间
<bean id="userService" class="com.zl.impl.UserServiceImpl" p:userDao-ref="userDao"></bean>
2 构造 (name是构造方法形参列表参数名 ref是id)
<bean id="userService" class="com.zl.impl.UserServiceImpl">
<constructor-arg name="userDao" ref = "userDao" ></constructor-arg>
</bean>
依赖注入的数据类型
1 普通数据类型
<bean id="userDao" class="com.zl.impl.UserDaoImpl">
<property name="username" value="zhangsan"></property>
</bean>
2 集合数据类型
<bean id="userDao" class="com.zl.impl.UserDaoImpl">
<property name="strList">
<list>
<value>aaa</value>
<value>bbb</value>
</list>
</property>
<property name="userMap">
<map>
<entry key="u1" value-ref="user1"></entry>
<value>bbb</value>
</map>
</property>
</bean>
<bean id="user1" class = "com.zl.domain.User">
<property name="name" value="lucy">
</bean>
3 引用数据类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通