一般建对象都是用new 使用new 关键字,他会将层与层之间的代码,紧紧的连接一起;
但是spring框架IOC容器用bean来进行托管对象,
IOC控制反转 是将对象实例化的过程交由spring的IOC容器来处理,当需要使用相关实例的时候,调用相关代码返回对象即可;
IOC的优点
利用XML文件配置的方式,大大降低了耦合度,修改XML文件的配置可以实现类的切换,灵活性变高;
DI依赖注入
1.set方法的注入:
a:在需要注入的类中,定义一个私有变量,生成get和set方法
b:再配置文件中定义bean对象,并且再bean标签中编写property标签的 name和reg属性进行赋值,name="你的私有变量名“ reg="你变量类型在bean的实例名称"
2.构造函数注入
再bean对象中加入标签:
<constructor-arg name="myFjs" ref="fjs"></constructor-arg>
其中name是你构造函数参数的类型 ref 同上面一样;
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- bean -->
<!-- id确保bean的唯一性 -->
<!-- class是bean的实例,确认用哪一个类来实例化 -->
<bean id="fjs" class="com.fjs.impl.MyFjs"></bean>
<bean id="fjsService" class="com.fjs.impl.FjsServiceimpl">
<!-- 依赖方法注入 Set方法注入
<property name="myFjs" ref="fjs"></property>
-->
<constructor-arg name="myFjs" ref="fjs"></constructor-arg>
</bean>
</beans>