一、spring
spring是一种项目管理框架,为javaEE提供更好的解决方案;采用工厂模式,统一生产(action、service、dao、事物)等组件,并对给组件进行管理。
二、spring工厂的搭建
导包--》搭建配置文件--》启动工厂
三、IOC(inverse of controll) 控制反转
1、 反转属性的赋值权,由代码中反转到配置文件中;
2、将具有依赖关系的组件之间的耦合打散,使得整个项目更加各司其职,责任单一,更加的的提高了项目的可维护性;
3、DI(dependency infection) 依赖注入:在配置文件中为属性赋值的方式。
(3) 自动注入:spring基于一个原则,自动在工厂里搜索某一个bean,将此bean赋值给对应属性
基于名称,在工厂中找到和属性同名的bean,自动注入
基于类型,在工厂中找到和属性同类型的bean,自动注入:spring基于一个原则,自动在工厂里搜索某一个bean,将此bean赋值给对应属性
spring是一种项目管理框架,为javaEE提供更好的解决方案;采用工厂模式,统一生产(action、service、dao、事物)等组件,并对给组件进行管理。
二、spring工厂的搭建
导包--》搭建配置文件--》启动工厂
三、IOC(inverse of controll) 控制反转
1、 反转属性的赋值权,由代码中反转到配置文件中;
2、将具有依赖关系的组件之间的耦合打散,使得整个项目更加各司其职,责任单一,更加的的提高了项目的可维护性;
3、DI(dependency infection) 依赖注入:在配置文件中为属性赋值的方式。
***** 方式:
(1) set注入:借助bean的set方法为属性赋值
<pre name="code" class="html"> <!-- jdk8中基本类型+String -->
<property name="id" value="52"></property>
<property name="name" value="c52"></property>
<property name="gender" value="true"></property>
<!-- 引用类型 -->
<property name="ud52" ref="userDAO53"></property>
<!-- List -->
<property name="list">
<list>
<value>52</value>
<value>hilo~~~</value>
<ref bean="userDAO53"/>
</list>
</property>
<!-- map -->
<property name="map">
<map>
<entry key="name" value="zhanghh"></entry>
<entry key="age" value="18"></entry>
<entry key="ud" value-ref="userDAO53"></entry>
</map>
</property>
<!-- Properties -->
<property name="props">
<props>
<prop key="url">jdbc:oracle:xxxxx</prop>
<prop key="driverClass">oracle.jdbc.xxxx</prop>
</props>
</property>
(2) 构造注入:借助bean的构造方法为bean的属性注入属性值
<!-- 构造注入 -->
<span style="white-space:pre"> </span><bean id="cons52" class="com.c52.test.ConsDIComponent">
<span style="white-space:pre"> </span><constructor-arg index="0" type="java.lang.Integer" value="52"></constructor-arg>
<span style="white-space:pre"> </span><constructor-arg index="1" type="java.lang.String" value="likaif"></constructor-arg>
<span style="white-space:pre"> </span><constructor-arg index="2" type="java.lang.Boolean" value="true"></constructor-arg>
<span style="white-space:pre"> </span></bean>
(3) 自动注入:spring基于一个原则,自动在工厂里搜索某一个bean,将此bean赋值给对应属性
基于名称,在工厂中找到和属性同名的bean,自动注入
基于类型,在工厂中找到和属性同类型的bean,自动注入:spring基于一个原则,自动在工厂里搜索某一个bean,将此bean赋值给对应属性
<span style="white-space:pre"> </span><!-- 基于名称自动注入的bean -->
<bean id="auto52" class="com.c52.test.AutoDIComponent" autowire="byName"></bean>
<!-- 基于类型自动注入的bean -->
<bean id="auto52" class="com.c52.test.AutoDIComponent" autowire="byType"></bean>