1.什么是DI
Dependence Injection 依赖注入(DI是IOC的一种具体实现):解决主键之间的装配问题
2.Spring中(DI)依赖注入的实现方式
2.1 setter 注入
基于set 方法的注入--
<bean id="cardb" class="com.xdl.demo.Card" >
<property name="suits" value="红桃"></property><!-- name:属性名,value:为属性赋值 -->
<property name="point" value="K"></property>
</bean>
property:属性,name:属性名,value:为属性赋值 ref:引用
<property name="card" ref="card"></property></bean>
2.2 构造器注入
基于构造方法的注入
<bean id="player" class="com.xdl.demo.Player">
<constructor-arg index="0" value="小马哥"></constructor-arg> <!-- 形参,index下标 -->
<constructor-arg index="1" value="18"></constructor-arg>
<constructor-arg index="2" ref="cardc"></constructor-arg><!-- ref:对象 -->
</bean>
2.3 自动化注入
在bean标记中 使用autowite 属性进行指定 取只有
byName 按照Spring 容器中组件的id 进行自动查找 看是否和属性名相同
byType 根据属性的类型 在容器
constructor 类似于byType 但类型冲突时会启用byName(看的是形参名)
3. bean 基本参数注入
3.1字符串 整数 浮点数
<bean id="card" class="com.xdl.demo.Card">
<property name="suits">
<value>黑桃</value>
</property>
<property name="point" ><null/></property>
</bean>
练习:
在Spring容器中创建一个连接池对象 通过Spring 容器获取连接池对象
然后通过连接池对象 获取数据库连接
3.2 成员
3.3 注入集合
<list/>(List)、<set/>(Set)、<map/>(Map)、<props/>(Properties)
eg:
<bean id="msgBean" class="com.xdl.bean.MagBean">
<property name="title" value="回家的愿望"></property>
<property name="length" value="1001"></property>
<property name="friends">
<list>
<value>张三</value>
<value>李四</value>
<value>王五</value>
<value>尼玛</value>
</list><!-- 自动将list值给friends -->
</property>
</bean>
<property name="phones">
<map>
<entry key="18121191101" value="小李"></entry>
<entry key="18121111111" value="小张"></entry>
<entry key="18121191103" value="小卫"></entry>
<entry key="18121191104" value="小丽"></entry>
</map>
</property>
<property name="phones2">
<props>
<prop key="15811999988" >张飞</prop>
<prop key="15811999987" >白起</prop>
<prop key="15811999986" >韩信</prop>
<prop key="15811999985" >李靖</prop>
<prop key="15811999984" >粟裕</prop>
</props>
</property>
如果另一个对象也用到相同的这个集合,则需要单独定义,用到
<util:list(set/map/properties) >
</util>
5.Spring 的EL表达式
把原来EL表达式中的$变成# 取得式=是Spring容器中对象的值
6.组件扫描
Spring提供了一套 可以把组件在容器中创建出来 以及组装组建的标注(注解)
这种技术可以大大简化xml的配置
6.2 组件扫描的使用步骤
1.建立工程拷贝配置文件spring 容器对应的配置文件和导入jar包(IOC和AOP)
2.在Spring容器中对用的配置文件中开启组件扫描
<context:component-scan base-package="包" />
3.在建立java类时 需要在java类上打对应的标注
@Repository 持久化层组件注解(DAO层)
@Service 业务层组件注解(调用DAO)
@Controller 控制层组件注解(sevlet)
@Component 通用层注解(除以上3中其他组件注解)
4.创建Spring 容器 从容器中获取对应的组件
1.EL表达式作用
2.JSP selvlet 4大对象?
1)servlet的四大作用域对象:
page(pageContext) :当前jsp页面
request(HttpServletRequest)
session(HttpSession):
application(ServletContext):tomcat启动时创建,tomcat关闭时销毁,整个web的生命周期只有一个
括号内为其对应的类
2)
jsp的九大内置对象:pageContext(pageContext)、request(HttpServletRequest)、session(HttpSession)、application(ServletContext)、response(HttpResponse)、config(ServletConfig)、out(JspWriter)、page(Object)、exception(Throwable)
括号内为其对应的类,这些对象都是存在于jsp中的,可以直接使用
jsp的四大作用域对象:
pageContext(pageContext)、request(HttpServletRequest)、session(HttpSession)、application(ServletContext)
括号内为其对应的类