1.导入spring的坐标spring-conrtext 对应的版本是5.3.7
2.配置bean //自己开发的模块使用setter注入
1.写class 写id 写有参构造(值/引用) 写属性(值/引用)//基础配置 构造方法 用index属性解决参数类型重复问题
2.写factoryClass 写factory-method 写id //静态工厂
3.对工厂进行基础配置 写factoryBean 写factory-method 写id//实例工厂(动态工厂)
4.创建UserDaoFactoryBean实现FactoryBean
getObject();//创建对象
getObjectType();//返回创建对象的类型
写factoryClass 写id //使用FactoryBean实例化(实例工厂的优化)
3.获取ioc容器
ApplicationContext context=new ClassPathXmlApplicationContext();
4.获取bean
BeanClass Bean = (BeanClass)context.getBean(“beanName”);
Bean的属性
name:“别名”
scope:singleton(单例) prototype(非单例)
基于接口的初始化和关闭
关闭钩子
context.registerShutdownHook();
依赖自动装配
//目标仅仅是引用类型
//自动装配优先级低于setter注入和构造器注入
按名称
autowire=“byName”//有较强的耦合 不推荐使用
按类型
autowire=“byType”//最常用
集合注入
<bean id="bookDao" class="com.wangqiang.dao.impl.BookDaoImpl">
<property name="array">
<array>
<value>100</value>
<value>200</value>
<value>300</value>
</array>
</property>
<property name="list">
<list>
<value>wangqiang</value>
<value>wang</value>
<value>qiang</value>
</list>
</property>
<property name="set">
<set>
<value>q</value>
<value>w</value>
<value>e</value>
<value>r</value>
</set>
</property>
<property name="map">
<map>
<entry key="country" value="China"></entry>
<entry key="province" value="shandong"></entry>
<entry key="city" value="jinan"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="country">China</prop>
<prop key="province">henan</prop>
<prop key="city">kaifeng</prop>
</props>
</property>
</bean>